Установить свойства виджета в 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
📻#Entrevistas || El deterioro del mercado laboral ecuatoriano se agrava con el aumento del empleo no pleno, caída del ingreso promedio y una economía que empuja a más familias a multiplicar trabajadores en casa para cubrir gastos básicos.
Los detalles ⬇️
https://www.radiopichincha.com/jorge-garcia-mercado-laboral-informalidad/
📻#Entrevistas | El abogado Washington Andrade reiteró sus cuestionamientos al concurso para designar al Fiscal General del Estado, al advertir que existen graves irregularidades y falta de transparencia en el proceso.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/persisten-irregularidades-e-injerencia-politica-en-concurso-para-fiscal-general/
📻#Entrevistas | Aunque la violencia puede disminuir de forma temporal, esto responde más a un repliegue estratégico de las bandas que a una solución duradera.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/fernando-carrion-toques-de-queda-en-ecuador-no-reducen-la-inseguridad-generan-un-efecto-globo/
📻#Entrevistas | La medida está vigente en el horario de 23:00 a 05:00 hasta el 18 de mayo de 2026.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/quito-servicios-44-detenidos-toque-de-queda/
📻#Entrevistas | El economista y expresidente de la Asamblea Constituyente, Alberto Acosta, también advirtió sobre los riesgos del Acuerdo de Comercio Recíproco con los EE.UU.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/se-vienen-mas-ajustes-y-sacrificios-para-cubrir-gasto-politico-de-noboa-segun-alberto-acosta/
📻#Entrevistas | José Villavicencio, presidente del FUT, afirmó que el 1 de mayo no es un día de festejo sino de conmemoración y anunció movilizaciones a nivel nacional junto a organizaciones sociales. “No es un feriado, es una fecha para conmemorar… los trabajadores y el pueblo vamos a tomarnos las calles”, señaló, al cuestionar la decisión del Gobierno de adelantar el feriado. Indicó que a la convocatoria se sumarán sectores como médicos, agricultores, jóvenes y el movimiento indígena en rechazo a la política del Gobierno.
#LaRadioDeLasNoticias
📻#Entrevistas | Las acciones del CNE vulneran el derecho a la participación política y evidencian una falta de independencia institucional.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/el-cne-no-garantiza-la-transparencia-del-proceso-electoral-segun-carlos-aguinaga/
📻#Entrevistas | El jurista dijo que el CJ ha usado la justicia para perseguir políticamente y ha dejado de lado la planificación.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/gustavo-jalkh-justicia-ecuador-debilidad-institucional/
📻#Entrevistas | La legisladora Ana Herrera, de la Revolución Ciudadana (RC), criticó la decisión del Consejo Nacional Electoral (CNE) de eliminar a las organizaciones políticas Unidad Popular y Construye, y aseguró que esta medida confirma que se vive una dictadura en Ecuador.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/delegacion-de-la-revolucion-ciudadana-denunciara-ante-la-oea-persecucion-politica-y-decisiones-del-cne/
📻#Entrevistas | La forma en que el Gobierno implementa el toque de queda en reiteradas ocasiones no ofrece soluciones de fondo frente a la crisis de seguridad, advierte la experta en seguridad Katherine Herrera.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/los-toques-de-queda-generan-ilusion-de-seguridad-y-no-frenan-la-violencia-advierte-experta/
📻#Entrevistas | La disputa afecta severamente a sectores formales como el transporte, la manufactura y los suministro de insumos médicos.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/ecuador-se-expone-a-sanciones-de-la-can-por-la-crisis-comercial-con-colombia/
📻#Entrevistas | El secretario de la Confederación Sindical de Trabajadores de las Américas señaló que los derechos laborales en el país sudamericano están en riesgo.
#LaRadioDeLasNoticias
Los detalles⤵️
https://www.radiopichincha.com/marcelo-di-stefano-ecuador-incumplimientos-normas-laborales/