Когда разрабатываете свой GUI с помощью PyQt для какого-либо софта бывает необходимо позаимствовать цвета из текущего стиля интерфейса. Например, чтобы правильно раскрасить свои виджеты, подогнав их по цвету. Ведь бывает, что ваш GUI используется в разных софтах. Причём некоторые со светлой темой а другие с тёмной.
По умолчанию стили наследуются, но если вы задаёте какую-либо раскраску для части виджета через свой styleSheet, то требуется ссылаться на цвета текущего стиля.
Как это сделать? Как получить нужный цвет из палитры имеющегося стиля? Это достаточно просто, нужно использовать класс QPalette и его роли.
Например, мне нужно достать цвет текста из одного виджета и применить его в другом как цвет фона (не важно зачем именно так, просто захотелось😊).
Получаем палитру виджета и сразу достаём нужный цвет, указав его роль.
from PySide2.QtGui import QPalette
color = main_window.palette().color(QPalette.Text)
теперь можем использовать этот цвет в стилях
my_widget.setStyleSheet(f'background-color: {color.name()};')
Готово, мы динамически переопределили дефолтный стиль используя текущий стиль окна!
На самом деле есть запись покороче, в одну строку и без лишних переменных. Не очень-то по правилам CSS, но Qt это понимает.
my_widget.setStyleSheet('background-color: palette(Text);')
Этот способ не подходит если вам нужно как-то модифицировать цвет перед применением в своих стилях. В этом случае потребуется первый способ.
Зато он прекрасно сработает в файле .qss, то есть не придётся в коде прописывать раскраску отдельных элементов через ссылки на палитру, всё красиво сохранится в отдельном файле .qss!
QListView#my_widget::item:selected {
background: palette(Midlight);
}
Про имеющиеся роли можно почитать здесь🌍
#qt#tricks
Геотермальная энергия, когда же уже?
Три года назад издание Vox опубликовало классную статью "Geothermal energy is poised for a big breakout", в которой дается обзор этого источника энергии и технологий для добычи геотермальной энергии. Очень интересно и познавательно, почитайте - ссылка! Статья написана в позитивном ключе, что мол даже 0.1% тепловой энергии Земли достаточно, чтобы обеспечить энергией все человечество на 2 миллиона лет вперед, и технологии на подходе.
Неделю назад, это же издание опубликовало более отрезвляющий материал "Is the future of energy ... pouring water on hot rocks in the ground?", написанный по следам успехов компании Fervo, которая впервые добилась результатов по генерации электричества в промышленных масштабах с помощью технологии усоверщенствованных геотермальных систем (ESG), я писал об этом тут. Авторы пишут, что технология конечно работает, но стоимость решения на данный момент $450 за киловатт, в то время как ветер и солнце дают $30-50 за киловатт. Пока технология добычи геотермальной энергии настолько неэфективна, что при циркуляции воды внутри системы, ее потери составляют до 20%, что собственно, даже дороже конечного продукта, поставляемого электричества. Статья.
Если кто-то хочет начать разбираться в том как работает добыча энерегии с помощью геотермальных систем, я советую прочитать обе статьи. Вторая, конечно, своего рода ложка дегтя. Но если посмотреть с другой стороны, инженеры, работающие в геотермалке должны трезво смотреть на мир и попытаться найти технологические решения, которые действительно помогут в масштабировании технологии.
#geothermal#climate
Нефтяные скважины для геотермальной энергии
В Оклахоме тысячи никому не нужных нефтегазовых скважин. Стоят себе. Их нужно законсервировать или использовать для извлечения энергии. Товарищи из Университета в Оклахоме сделали инструмент, для быстрой выборки нефтяных скважин, которые могут быть перепрофилированы в геотермальные.
В основе инструмента известные статистические методы: метод K-ближайших соседей и Кригинг (гауссовские процессы). Для оценки возможных кандидатов анализировались три фактора: температура, близость к конечному пользователю и целостность скважины.
Тема интересная. Департамент Энергетики США сейчас выделяет гранты проектам за доступ к геотермальному потенциалу заброшенных нефтяных и газовых скважин, например ICE Thermal Harvesting или Transitional Energy.
#geothermal#startup#oil&gas
Геотермальный прорыв Fervo Energy
Тим Латимер, CEO геотермального стартапа Fervo Energy, сообщил об успешном завершении полномасштабного пилотного проекта "Project Red", который способен генерировать 3.5 мегаватта электричества. Project Red будет подключен к сети и запитает в том числе гугловские дата центры.
История крутая. Еще 10 лет назад Тим работал буровым инженером и понял, что нефтегазовые технологии достаточно продвинутые и дешевые, чтобы их применить в создании усовершенствованных геотермальных систем (ESG), на второй картинке. Это когда после гидроразрыва пласта закачивают холодную воду, а выкачивают горячую. С ним мало кто соглашался и он пошел в Стэнфорд поучиться, где написал, научные работы, подтверждающие его гипотезы и нашел сооснователя Fervo Energy. Шесть лет они выхватывали кучу хейта, так как технология ESG считалась слишком сырой и не готовой для коммерциализации.
И вот недавно, оба кофаундера выпустили отчет, где отчитались об успешном завершении первого в своем роде ESG пилотного проекта в Северной Неваде - Project Red. Бурили в вулканические породы при температурах около 200 градусов по Целльсию. В общем начался опять движ в геотермалке. Стоит сказать, что затраты на получение энергии с помощью этой технологии все еще слишком велики.
Вот тут можно почитать подробнее.
#geothermal#technology#drilling#decarbonization