Установить свойства виджета в 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
#España#Electricidad. La resiliencia del sistema eléctrico es cada vez menor y más frágil el sistema en su conjunto.
«Red Eléctrica ordenó hace un mes el parón obligatorio de grandes consumidores industriales por miedo a un desajuste entre la producción y el consumo de electricidad en todo el país. El estreno del nuevo sistema de respuesta activa de la demanda [nombre bonito de los parones de urgencia] fue necesario por la parada inesperada de una central nuclear, un aumento de exportaciones y una menor producción eólica de la esperada»
https://www.epe.es/es/activos/20231004/espana-parada-fabricas-industria-reducir-consumo-luz-92879325
#UE#Electricidad y guerra
«El Instituto Potsdam cifra en casi 800.000 millones las ayudas desplegadas»
https://elpais.com/economia/2023-10-05/el-precio-de-la-independencia-electrica-europea-140000-millones-al-ano-hasta-2030.html
#Alemania y la #electricidad subvencionada para la #guerratecnológica (e Intel)
https://elchapuzasinformatico.com/2023/10/alemania-subvencion-electricidad-fab-chips-intel-10-ct-kwh-20-anos/
¿Cuáles son los elementos de un circuito eléctrico?
Un circuito eléctrico es un sistema cerrado de conductores y componentes que permite el flujo de la corriente eléctrica. Pero ¿sabes cuáles son sus componentes?
Descubre también cuáles son los 5 tipos de circuitos eléctricos que puedes encontrar y cuáles son sus elementos de control.
Leer más#electricidad#circuitos
#Alemania#Cocheeléctrico#Electricidad
«Ahora, un informe ha puesto al descubierto la nueva estrategia con la que el Gobierno alemán pretende fomentar la compra de eléctricos haciendo gala del dicho «Si no puedes con tu enemigo, únete a él». Incluso, serán los clientes los que devuelvan el favor al gobierno, no en dinero ni en especie, sino en energía eléctrica. El Ministro de Transportes, Volker Wissing, quiere hacer valer la carga bidireccional, por lo que subvencionará la compra de coches eléctricos con hasta 10.200 euros a aquellos clientes cuyos modelos devuelvan excedentes de energía a la red eléctrica pública.»
https://www.motor.es/noticias/alemania-ayudas-compra-coches-electricos-202397189.html
#Alemania dividirá su mercado de #electricidad entre Norte (desindustrializado) y Sur (industrial) para tener dos precios distintos... generando nuevas ineficiencias que rentabilizarían cosas como las inversiones en #hidrógeno
«“Dado que la cuota de renovables en el mix eléctrico sería muy alta en la zona norte, los electrolizadores podrían producir hidrógeno verde utilizando electricidad de la red, sin un PPA, mucho antes de lo que sería posible con una única zona de precios de la electricidad. Este modelo de negocio basado en la red también aumentaría la competitividad del hidrógeno verde producido hasta en un tercio. Si la infraestructura de tuberías dentro de Alemania se ampliara en consecuencia, los consumidores industriales del sur también se beneficiarían”.»
https://elperiodicodelaenergia.com/la-division-del-mercado-energetico-aleman-provocaria-un-aumento-de-los-precios-de-la-electricidad-en-el-sur-y-la-produccion-de-hidrogeno-verde-en-el-norte/
#China. #PactoVerde y #Tecnología para ahorrar #electricidad que destruye fondos marinos
https://www.lavanguardia.com/andro4all/tecnologia/china-esta-construyendo-el-primer-centro-de-datos-bajo-el-agua-del-mundo-tan-potente-como-6-millones-de-pc
#UE#PactoVerde. Una red de distribución de #electricidad para el #cocheeléctrico que refleja la distribución del capital, no del consumo
https://www.xataka.com/movilidad/comision-europea-recoge-mapa-todos-puntos-recarga-coches-electricos-paso-problema-espana
#UE. Acuerdo por fin sobre la reforma del mercado de la #electricidad entre #Francia y #Alemania
«Las conversaciones llevaban meses estancadas por el enfrentamiento entre Francia y Alemania en torno a los llamados Contratos por Diferencia (CfD), contratos a largo plazo que permitirían a los gobiernos captar los ingresos extra que recibían las eléctricas al subir los precios.
Francia quería que la energía #EEUU nuclear, de la que depende en gran medida su mercado energético, se incluyera en los CfD, pero Berlín temía que París pretendiera dar a su industria una ventaja competitiva injusta.
Ambas partes han llegado a un compromiso, una semana después de que el presidente de Francia, Emmanuel Macron, se reuniera con el canciller de Alemania, Olaf Scholz, en Hamburgo para abordar sus diferencias.»
https://es.euronews.com/my-europe/2023/10/17/los-ministros-de-energia-de-la-ue-llegan-a-un-acuerdo-sobre-la-reforma-del-mercado-electri
#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
#Tecnología. La #IA es intensiva en capital... y en #electricidad. #PactoVerde
https://www.3djuegos.com/tecnologia/noticias/demanda-energetica-ia-podria-igual-todo-consumo-electrico-irlanda-esa-situacion-solo-representa-parte-problema
#España#Italia#Electricidad. #Cosaschulísimas también en el ministerio de consumo
https://www.elsaltodiario.com/pobreza-energetica/endesa-trabaja-mafias-condenan-dos-directivos-una-empresa-cobra-deudas-electrica-dp-consulting