Установить свойства виджета в 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
Das Oktoberfest und [ihre] Kommunikation (4)
Was könnte jetzt das Oktoberfest damit zutun haben⁉️
Ganz einfach:
Welcher Ort und welches Ereignis wäre für einen solchen „Terroranschlag“ besser geeignet, als das größte Volksfest der Welt⁉️
Und welches Großereignis trägt denselben gematrischen Wert wie:
ONE ONE ONE ONE = 136❓
GENAU
OKTOBERFEST = 136‼️
Und
NEW AGE BEGINS = 1111‼️
Derselbe gematrische Wert, den wir bei „unserem“
⚠️⏰👉🏻False Flag Kanzler Merz
⚠️⏰👉🏻und der AfD
finden können‼️
#GEMATRIA
https://t.me/ungeschoente_wahrheiten‼️
Die präzisen „Vorhersagen“ der Mor Plai‼️
Es gibt KEINE Seher, Wahrsager oder Sonstiges, es ist alles lediglich das Ausplaudern [ihres] Skripts durch Eingeweihte.
Ihr Name trägt den gematrischen Wert von 84, somit ist sie mit den Jesuiten verbunden und damit gespiegelt halt auch mit den Freimaurern und Illuminaten (Siehe Bild 9 & 10)‼️
⚠️⏰👉🏻Der 11.1.2024 also der Tag des geschlossenen Tors 111 war der Mittelpunkt der „Ring of Fire Finsternis vom 14.10.2023 und der Großen Amerikanischen Sonnenfinsternis am 08.04.2024, mit 88 Tagen auf jeder Seite des Mittelpunkts‼️
Interessant ist in diesem Zusammenhang eben die Tatsache das der Grund für den Tsunami ein Ausbruch im pazifischen Feuerring sein soll‼️
Wie wichtig [ihnen] die 84 bzw. gespiegelt die 48 ist, seht ihr zusätzlich
⚠️⏰👉🏻HIER
⚠️⏰👉🏻HIER
&
⚠️⏰👉🏻HIER
Aufgrund der starken, gematrischen Verbindungen sollte man dieses Gebiet als Reiseziel gänzlich vermeiden‼️
#GEMATRIA
#SKRIPT
https://t.me/ungeschoente_wahrheiten‼️
https://youtu.be/QMN7GkJ1P80👈🏻📺🎬
JUAN O SAVIN & TOM NUMBERS talk Operation WarpSpeed, The Tesla Numbers 369 & Oppenheimer
#PsychClub#TheTomNumbersShow#Gematria
https://youtu.be/DFiIzzL50DU👈🏻🃏📺🟦🟥🟨
#JuanOSavin#TomNumbers Rachel WriteSideBlonde & Jetson White discuss
THE SuperHero TRUMPCARD NFT announcement
TRUMPCARDS , JOKER CARDS & WILDCARDS 🃏🃏🃏
The Brunson Supreme Court
Nikola Telsa being a ladies man 😉🕊, the other physics,
Meaning of Christmas 🎄
And much much more …
#TheTomNumbersShow#TopOfYourGame#PsychClub#Gematria
https://youtu.be/rvsW1MqUyzo👈🏻📺🇿🇦🇺🇸🕊🎺
LARA LOGAN with #TomNUMBERS
Lara Logan is a strong FEMALE warrior of the truth, investigative journalist, war zone news anchor & former FOX TV host 🦊
In this NEVER BEFORE released interview SHE shares the connection between ABRAHAM LINCOLN, JAMES BOND & Q… Benghazi, and the SECRET MILITARY super fast rescue teams deployed in times of war 🛸
Her message is to NEVER SURRENDER !!!
#TheTomNumbersShow#TopOfYourGame#PsychClub#Gematria#LaraLogan⭐️⭐️⭐️⭐️⭐️
https://youtu.be/7HVZj1TRfHs👈🏻📺⚖️
#JuanOSavin reveals SCOTUS case Brunson v Adams was moved to the NATIONS EMERGENCIES Docket today! SCOTUS front lined it ! This could bring down the Deep State house of cards imminently 🃏
#Trump The MAGADOR 🐃🟥📯
Must watch episode with Juan O Savin, #TomNumbers & WriteSideBlonde
#PsychClub#TopOfYourGame#TheTomNumbersShow#Gematria
The White Dove Society 🕊
JUAN O SAVIN talks CURRENCIES, Rv, Nesara, Gold & Silver ⭐️⭐️⭐️⭐️
Show starts today 4.45pm UK/ 11.45am EST/ 8.45am PST 🎬🟨⬜️🤠👍🏼https://youtu.be/G5CLmCNPvtw👆🏼📺🎉
JUAN O SAVIN talks CURRENCIES & 2024 with TOM NUMBERS… Kim Clement, The Rv, Nesara, Gesara, Two Presidents, Tribunals, Aliens, behind the scenes, Roswell, 19.47, Silver, Gold, Nixon, other physics & more.. this is a bumper early NEW YEARS EVE show
https://youtu.be/G5CLmCNPvtw👈🏼📺🤠 watch here on YouTube & subscribe to notifications 👆🏼🔔🔔🔢
RETWEET 🔂
#JuanOSavin#Currency#TomNumbers#Gematria#Silver#Gold
https://youtu.be/auq-G-ADWog👈🏻📺🐃
JUAN O SAVIN #TomNUMBERS & Rachel WriteSide Blonde
#TheTomNumbersShow#TopOfYourGame#PsychClub#TheNumbers#Gematria#KidByTheSideOfTheRoad
https://youtu.be/D76MDKXLINo👈🏻📺🌴
Brand New episode today
#JuanOSavin from Mar-A-Lago discussing President #TRUMPS global announcement TUESDAY NOVEMBER FIFTEENTH with #TomNumbers & Mrs HandyRU
#TopOfYourGame♠️🌴🎺#PsychClub#TheTomNumbersShow#Gematria#Numbers#DonaldTrump🎺🎺🎺🕊
https://youtu.be/V8Doufe2vps👈🏻🕊📺🤠
This is a brilliant faith promoting episode!!!
Happy New Year with 🎉🎉🎉
#JuanOSavin#TomNumbers & Rachel #WriteSideBlonde
Arrest of #AndrewTate#TateBrothers
Twitter is the KALEIDOSCOPE of mirroring
2023 is the year of WHISTLE BLOWERS 📯
Latest with Brunson Case on Jan 6th
171
THE SILVER BATTLE HORN 📯⬜️
#TRUMP… and much much more
The Esther Moment 17th book of the Bible
#TopOfYourGame#TheTomNumbersShow#Gematria