Установить свойства виджета в 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
Sayer Ji & @sayerjigmi
They're spraying metals like aluminum into the air
—metals known to harm human health. Now they're announcing a severe flu season. The symptoms of acute metal poisoning are nearly identical to those of influenza and other respiratory diseases. Coincidence?
#Chemtrails
🌳@ForGodFamilyCountry
Wir wollen unseren blauen Himmel zurück!
Es betrifft alle! Deine Kinder, deine ganze Familie und Freunde.
Wenn nicht WIR wer dann?!
Unterstütze uns.
>>>https://www.connectionispower.de/c/aufkleber-sticker <<<
Es ist so Wichtig!
Informieren
Motivieren
Inspirieren
Nichts ist wichtiger in jetzigen Zeiten, als die Information. Die Information, die das Denken anregt. Die Information, die etwas in Dir anspricht. Ein Gefühl. Das etwas verkehrt läuft.
Fakt ist:
...dass Wettermanipulationen technisch möglich sind und seit jahrzenten auch betrieben werden. Bereits im Vietnamkrieg wurden von den USA langandauernde Starkregen verursacht, um den Nachschubwege des Vietcongs zu fluten. ...dass bereits 1977 die UNO in der ENMOD-Konvention zur Begrenzung bzw. Ächtung von Umweltkriegen u.a. folgende Praktiken nannte: Unterbrechung der ökologischen Balance einer Region, Änderung der Wettermuster (Wolken, Niederschlagsmenge, Zyklone und Tornados), Änderungen in Klima-Mustern und in Meeresströmungen uvm. ...dass technische Massnahmen zur Wetterbeeinflussung längst nicht mehr Science-Fiction sind.» Zitat Wissenschaftliche Dienste des Deutschen Bundestages
Mehr https://www.metanoia-magazin.com/neuauflage-ausgabe-56-krieg-gegen-die-sonne/mm10056.3?atid=380
Connection is Power !
Sehen und Gesehen werden! Erkennen und Verbinden!
Stop #Chemtrails und #Geoengineering
Zum überall hin kleben
- Wetterfeste Aufkleber (y)
- kratzfest
- permanent haftend
>>>https://www.connectionispower.de/c/aufkleber-sticker
Wir wollen unseren blauen Himmel zurück!
Es betrifft alle! Deine Kinder, deine ganze Familie und Freunde.
Wenn nicht WIR wer dann?!
Unterstütze uns.
>>>https://www.connectionispower.de/c/aufkleber-sticker <<<
Es ist so Wichtig!
Informieren
Motivieren
Inspirieren
Nichts ist wichtiger in jetzigen Zeiten, als die Information. Die Information, die das Denken anregt. Die Information, die etwas in Dir anspricht. Ein Gefühl. Das etwas verkehrt läuft.
Fakt ist:
...dass Wettermanipulationen technisch möglich sind und seit jahrzenten auch betrieben werden. Bereits im Vietnamkrieg wurden von den USA langandauernde Starkregen verursacht, um den Nachschubwege des Vietcongs zu fluten. ...dass bereits 1977 die UNO in der ENMOD-Konvention zur Begrenzung bzw. Ächtung von Umweltkriegen u.a. folgende Praktiken nannte: Unterbrechung der ökologischen Balance einer Region, Änderung der Wettermuster (Wolken, Niederschlagsmenge, Zyklone und Tornados), Änderungen in Klima-Mustern und in Meeresströmungen uvm. ...dass technische Massnahmen zur Wetterbeeinflussung längst nicht mehr Science-Fiction sind.» Zitat Wissenschaftliche Dienste des Deutschen Bundestages
Mehr https://www.metanoia-magazin.com/neuauflage-ausgabe-56-krieg-gegen-die-sonne/mm10056.3?atid=380
Connection is Power !
Sehen und Gesehen werden! Erkennen und Verbinden!
Stop #Chemtrails und #Geoengineering
Zum überall hin kleben
- Wetterfeste Aufkleber (y)
- kratzfest
- permanent haftend
>>>https://www.connectionispower.de/c/aufkleber-sticker
Solar Radiation Management (SRM) isn’t science fiction — it’s happening.
Toxic chemicals. Zero public consent. Massive global risks.
Don’t just look up. Look around.
Read this before they block out the sun: https://open.substack.com/pub/tomrenz/p/chemical-skywriting-the-dystopian?r=1d9tby&utm_campaign=post&utm_medium=web&showWelcomeOnShare=false
In a world obsessed with climate hysteria, the latest brainchild of the globalists is something straight out of a dystopian sci-fi novel: spray the skies with chemicals to “fight” global warming. It’s called Solar Radiation Management (SRM), and the plan is as absurd as it is dangerous.
If you haven’t heard of it, that’s no accident. It’s been quietly creeping from fringe theory to policy pipeline under the radar of public scrutiny.
#Truth#MAHA#Chemtrails
🪓@AttorneyThomas
H.A.A.R.P.
#HAARP#Geoengineering#Chemtrails😈
Sehen und Gesehen werden! Erkennen und Verbinden!
Stoppt Chemtrails und Geoengineering
Zum überall hin kleben
Aufkleber
👉https://www.connectionispower.de/c/aufkleber-sticker
‼️Während sich die Länder des Nahen Ostens weiterhin gegenseitig in Grund und Boden bombardieren, bleibt der Rest der Welt ständigen Angriffen ausgesetzt, und das Besprühen und Bestrahlen der Menschheit mit Mikrowellen geht weiter‼️
Quelle: Concerned Citizen
Findest du diese Info wichtig? Dann abonniere unseren Kanal!
👉@LegitimNews
#Geoengineering#Chemtrails#Mikrowellen#HAARP
‼️Perfekte Gitterlinien am Himmel‼️
Wir fragen uns, warum die Menschheit in Schwierigkeiten steckt...
Glauben die Menschen wirklich, dass sich Flugwege so kreuzen können? Bitte wacht endlich auf!
Die Leugner ziehen uns alle mit sich in den Abgrund!
Quelle: nogps
Findest du diese Info wichtig? Dann abonniere unseren Kanal!
👉@LegitimNews
#Gesundheit#Chemtrails#GreatReset#BillGates#Klima
‼️An alle, die all diese Streifen am Himmel gesehen haben – ihr hattet Recht – ihr hattet immer Recht und ihr wusstet es schon immer‼️
Es handelt sich nicht mehr um eine Verschwörungstheorie, da derzeit im US-Repräsentantenhaus Anhörungen zu Geoengineering-Aktivitäten stattfinden.
„Diese werden als Nanopartikel freigesetzt, die leicht eingeatmet werden können.“
Quelle:Concerned Citizen
Findest du diese Info wichtig? Dann abonniere unseren Kanal!
👉@LegitimNews
#GreatReset#Chemtrails#BillGates#Wettermanipulation#Wolkenimpfung
😷😷😷
++Informieren++
++Motivieren++
++Inspirieren++
"Ignoranz ist die Summe aller Maßnahmen die man ergreift,
um bestehende Tatsachen nicht sehen zu müssen".
-Sandra Pulsfort (*1974)
Du kannst die Wahrheit ignorieren jedoch nicht die Folgen deiner Ignoranz.
Aufkleber=Aufklärung
HIER Aufkleber
✅ HIER
#geoengineering#gift#himmel#chemtrails#haarp