TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 5 слични објави

Пребарај: #renovables

当前筛选 #renovables清除筛选
Communia

@communia · Post #37354 · 23.10.2023 г., 07:27

#Tecnología de almacenamiento barata para agregar a los edificios acumuladores útiles para una red de #electricidad muy basada en #renovables y por tanto más inestable https://www.europapress.es/ciencia/laboratorio/noticia-dispositivo-cemento-negro-carbon-agua-almacena-energia-20230801124723.html

Communia

@communia · Post #37621 · 22.11.2023 г., 08:02

Las #baterías gigantes que permiten almacenar el excedente de la producción de #renovables se llevan el capital que iba a ir a plantas de #gas. #PactoVerde «Las baterías gigantes que garantizan un suministro estable de energía compensando los suministros renovables intermitentes se están volviendo lo suficientemente baratas como para hacer que los desarrolladores abandonen decenas de proyectos de generación a gas en todo el mundo.» https://www.reuters.com/business/energy/giant-batteries-drain-economics-gas-power-plants-2023-11-21/

Communia

@communia · Post #37811 · 07.01.2024 г., 09:04

#PactoVerde. Las #refinerías y las #petroleras quieren ir a la #captura de #UE#co2 -costosa, poco eficiente, intensiva en capital- en vez de a las #renovables «La industria petrolera lo ve como una forma potencial de seguir extrayendo más #petróleo y #gas, incluso con planes de utilizar el #CO2 capturado para extraer aún más combustibles fósiles.» «La ciencia muestra que la CCS no debería usarse en gran medida cuando hay alternativas como la energía renovable fácilmente disponibles. Sin embargo, la industria del petróleo y el gas es una de las mayores defensoras de la CCS, con empresas que buscan adaptar plantas de energía y refinerías con esta tecnología. Aunque hasta ahora ha sido un desafío para la industria, los incentivos fiscales de la Ley de Reducción de la Inflación han generado un renovado interés."» https://www.lainformacion.com/clima/captura-carbono-divide-industria-medioambiental/2896965/