Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
EIA AEO-2025: сработает ли энергетический поворот Дональда Трампа?
15 апреля Управление энергетической информации Минэнерго США опубликовало ежегодный прогноз развития энергетики США до 2050 г. (AEO-2025). Этот прогноз стал первой попыткой серьезного анализа того, как предложения Администрации Дональда Трампа по ослаблению энергетического регулирования скажутся на энергетике США – в средне- и долгосрочной перспективе. Подготовка столь объемного документа обычно занимает много времени и, скорее всего, правки для разработки сценария, учитывающего новые регуляции, вносились «в последний момент».
Ослабление требований к выбросам СО2 для угольных электростанций, предложенное Администрацией Дональда Трампа, не приведет к ренессансу отрасли, но позволит сохранить её на энергетической карте Америки: в соответствии с базовым сценарием мощность угольных ТЭС в 2025-31 гг. снизится более чем в 2,5 раза, до 63 ГВт, а в 2032 г. отрасль фактически прекратит свое существование – мощности угольной генерации упадут до 3,4 ГВт, это меньше установленной мощности российской Рефтинской ГРЭС (3,8 ГВт, самая большая российская угольная электростанция). В «альтернативном сценарии», не учитывающим ужесточение углеродного регулирования, мощности угольных ТЭС в 2032 г. составят 78 ГВт (двухкратное снижение к уровню 2024 г.), а в следующие два десятилетия мощности будут медленно сокращаться и к 2050 г. останутся на уровне 59 ГВт.
За первые 4 месяца работы новая Администрация уже смогла сохранить целую отрасль экономики. Возможно, что в следующем AEO-2025 мы увидим совсем другой, намного более оптимистичный прогноз, а альтернативный сценарий окажется «основным»? В этом случае и российская Энергостратегия-2050, которую сейчас яростно критикуют адепты «зеленой повестки» может показаться образцом практичности и консервативности.
#EIA#Прогнозы#Угледобыча
Оценки спроса на нефть в 2К2024: динамика совпадает, оценки все больше расходятся
Разные исследовательские агентства по-разному оценивают мировой спрос на нефть и жидкие углеводороды. Различия могут достигать 1-2 мбд (50-100 млн т в пересчете на год) и связаны не только с отличающимися подходами к оценке добычи традиционных нефти и газового конденсата, но и учете иных источников, включая, например, т.н. refinery processing gains - объемы поступившей на переработку нефти могут оказаться меньше объема полученных нефтепродуктов, имеющих меньший чем нефть удельный вес (ведь измерение происходит в баррелях, для массы действует закон сохранения).
Но отличаются не только абсолютные оценки, но и приросты. В 1К2024 оценки увеличения спроса варьировались от 0.8 мбд до 2.2 мбд. Наибольший оптимизм сохраняла OPEC, тогда как инвестбанки и агентства из стран-потребителей были более консервативны. Конечно, оценки спроса подвижны (часто до финального результата данные пересматриваются 3-5 раз, причем может меняться даже знак изменения), но для рынка важны именно первые, оперативные данные.
#СпросНаНефть#OPEC#EIA#IEA
📊Коммерческие запасы нефти в США резко сократились 💧
Согласно последним данным Американского института нефти (API):
✅Коммерческие запасы нефти за неделю, закончившуюся 30 января, снизились на 11,1 млн баррелей (после сокращения на 247 тыс. баррелей неделей ранее).
✅Запасы бензина увеличились на 4,7 млн баррелей.
✅Запасы дистиллятов снизились на 4,8 млн баррелей.
✅Запасы в Кушинге (важнейший хаб США) сократились на 1,4 млн баррелей.
📌 Управление энергетической информации (EIA) опубликует официальный отчет в среду. Аналитики, опрошенные The Wall Street Journal, прогнозируют:
⭐Незначительное изменение запасов сырой нефти.
⭐Увеличение запасов бензина на 1,3 млн баррелей.
⭐Сокращение запасов дистиллятов на 2,4 млн баррелей.
💵 Нефтяные фьючерсы West Texas Intermediate (WTI) за март недавно торговались по цене $63,77 за баррель, незначительно подорожав после уровня $63,21 накануне.
🤑Следите за нашими обновлениями, чтобы оставаться в курсе последних изменений в экономике и политике!
#нефти#запасынефти#нефтьwti#api#eia#oilprices#oilreserves