Установить свойства виджета в 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
Papa #LeoneXIV è stato ufficialmente invitato a visitare il #Kazakistan. Lo si apprende dall'Ufficio Stampa del Senato kazako dopo l'udienza concessa dal Pontefice al Presidente del Senato, Maulen Ashimbayev, il quale ha consegnato al Santo Padre l'invito del presidente kazako, Kassym-Jomart Tokayev.
"Il Kazakistan, patria di diverse comunità etniche e religiose, apprezza profondamente il sostegno incrollabile della Santa Sede ai nostri sforzi per promuovere la pace, l'armonia e il rispetto reciproco. Gli speciali legami di amicizia e cooperazione tra il Kazakistan e il Vaticano continuano a rafforzarsi, basandosi sull'eredità dei vostri predecessori, che voi, Santità, state ora sviluppando costantemente con approcci rinnovati - si legge nella missiva consegnata al Pontefice -. Siamo particolarmente grati per il continuo sostegno del Vaticano al Congresso dei leader delle religioni mondiali e tradizionali. Il vostro discorso ai partecipanti all'VIII Congresso, così come la Dichiarazione finale di questo forum, servono da guida spirituale per rafforzare il dialogo globale e contrastare l'estremismo e l'intolleranza. Il Kazakistan sarebbe molto onorato di ospitare Vostra Santità in una visita apostolica quando le sarà più comodo. Sono fiducioso che tale visita ispirerà i rappresentanti delle diverse società della nostra regione e darà nuovo impulso alla nostra ricerca comune per un ordine internazionale più giusto e armonioso".
🇰🇿 In #Kazakistan è stato approvato col 90% dei voti il referendum costituzionale. La nuova costituzione rafforza i poteri del Presidente Kassym #Tokayev, al governo dal 2019. Il fulcro della riforma è l'abolizione del bicameralismo (Senato e Assemblea), sostituito con un Congresso monocamerale di 145 seggi. Inoltre istituisce il "Consiglio del popolo", un organo consultivo che si riunirà una volta all'anno, oltre al ripristino della carica di vicepresidente, soppressa nel 1996. La lingua russa, pur rimanendo ufficiale, viene parzialmente declassata come lingua "parallela" al kazako e non più come "paritaria", riforma che riflette i cambiamenti demografici e maggior autonomia da Mosca.
@UltimoraPolitics24
Le riforme del Kazakistan: stabilità, nuovi poteri e futuro digitale
Nel recente Congresso Nazionale di Qyzylorda, il Presidente Qasym-Jomart Toqaev ha presentato un ambizioso piano di riforme costituzionali e istituzionali per una "nuova fase" di sviluppo del Paese. Ecco i punti chiave:
Successione presidenziale: regole chiare per elezioni entro due mesi in caso di interruzione del mandato, garantendo che il nuovo capo dello Stato venga scelto solo dal voto popolare.
Nuova figura del Vicepresidente: nominato dal Presidente con l’approvazione del Parlamento, per garantire continuità istituzionale e rappresentanza internazionale, senza ridurre i poteri presidenziali.
Parlamento unicamerale (Kurultai): 145 deputati eletti con sistema proporzionale, per snellire i processi decisionali e rafforzare il ruolo dei partiti. Più controllo sull’esecutivo, soprattutto nelle nomine di giudici e organismi chiave.
Trasformazione digitale costituzionalizzata: riconoscimento giuridico della digitalizzazione e dell’IA come pilastri dello sviluppo, con la creazione di zone per data center e un archivio nazionale digitale per preservare cultura e sapere.
Politica estera equilibrata: mantenimento dell’approccio multi-vettoriale, per navigare le tensioni globali e proteggere gli interessi nazionali attraverso il dialogo.
Queste riforme puntano a coniugare stabilità istituzionale, efficienza governativa e innovazione, preparando il Kazakistan alle sfide interne e globali. Una visione che mira a modernizzare lo Stato rafforzando al tempo stesso la sua legittimità e prevedibilità.
#Kazakistan#RiformeCostituzionali#Toqaev#Digitalizzazione#Geopolitica#Sviluppo
https://www.marx21.it/internazionale/riforme-costituzionali-in-kazakistan-il-progetto-di-toqaev-tra-stabilita-istituzionale-nuova-architettura-dei-poteri-e-trasformazione-digitale/
4 membri dell'Organizzazione degli Stati turchi; #Kazakistan, #Turkmenistan, #Uzbekistan e #Kirghizistan, hanno votato, al Consiglio di Sicurezza dell'#ONU per sostenere la sovranità di #Cipro e condannare la presenza della #Turchia sull'isola.