Установить свойства виджета в 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 stärkste Antibiotika kommt aus der Natur: Propolis ist eine von Bienen hergestellte harzartige Masse mit antibiotischer, antiviraler & antimykotischerWirkung.
Den enthaltenen Polyphenolen besitzen nachweislich antibakterielle, desinfizierende & antiseptische Eigenschaften mit antientzündliche & wundheilungsfördernde Wirkung gegenüber krankheitserregenden Bakterien.
Die enthaltenen Vitamingruppen B, C & E tragen als natürliche Antioxidantien freie Radikale abzufangen & zu neutralisieren.
Anwendung:
✅Immunsystem für Kinder & Erwachsene
✅Zahnfleischreizungen
✅Mundgeruch
✅Halsschmerzen & Grippe
✅Schleimhautverletzungen
✅Hautunreinheiten, wie zb. Akne
✅Narben & Warzen
✅Hautverletzungen
✅Neurodermitis & Ekzeme
✅Vorbeugung
👉Propolis in Bio- & Imker-Qualität aus deutscher Herstellung
🎁10% Code: GesundohneRezept🔥
🐝Power-Duo
🐝Gelee Royal
🐝Manuka Honig
🐝Bleib-Stark-Set
👉👉All-in-One-Set✔️
Gesund ohne Rezept 🌼✨
Mehr Hier ⬇️
https://t.me/GesundOhneRezept
#Manuka
Wusstest du, dass ein Löffel Honig ausreicht, um eine Person 24 Stunden am Leben zu halten?
Wusstest du, dass eine der ersten Münzen der Welt ein Bienensymbol hatte?
Wusstest du, dass Honig lebende Enzyme enthält?
Wussten Sie, dass diese Enzyme auf einem Metalllöffel absterben.
Honig isst man am besten mit einem Holzlöffel; wenn man ihn nicht findet, benutzt einen Plastiklöffel.
Wusstest du, dass Honig eine Substanz enthält, die dem Gehirn hilft, besser zu funktionieren?
Wusstest du, dass Honig eines der wenigen Lebensmittel auf der Erde ist, die menschliches Leben erhalten können?
Wusstest du, dass Bienen in Afrika Menschen vor dem Hungertod gerettet haben?
Wussten Sie, dass Propolis von Bienen eines der stärksten Antibiotika der Natur ist?
Wusstest du, dass Honig kein Verfallsdatum hat?
Wusstest du, dass die Körper der größten Kaiser der Welt in Särgen aus Gold begraben und dann mit Honig bedeckt wurden, um Veräulung zu verhindern?
Wusstest du, dass der Begriff "Flitterwochen" (Flitterwochen) von frisch verheirateten Paaren kommt, die nach der Ehe Honig zur Fruchtbarkeit konsumieren?
Wusstest du, dass eine Biene weniger als 40 Tage lebt, mindestens 1000 Blumen besucht und weniger als einen Teelöffel Honig produziert, aber für sie ist es ein Lebenswerk.
Danke ihr lieben Bienen ..!
Bienen-LexikonDein Lexikon rund um die Welt der Bienen
#Manuka
Wusstest du, dass ein Löffel Honig ausreicht, um eine Person 24 Stunden am Leben zu halten?
Wusstest du, dass eine der ersten Münzen der Welt ein Bienensymbol hatte?
Wusstest du, dass Honig lebende Enzyme enthält?
Wussten Sie, dass diese Enzyme auf einem Metalllöffel absterben.
Honig isst man am besten mit einem Holzlöffel; wenn man ihn nicht findet, benutzt einen Plastiklöffel.
Wusstest du, dass Honig eine Substanz enthält, die dem Gehirn hilft, besser zu funktionieren?
Wusstest du, dass Honig eines der wenigen Lebensmittel auf der Erde ist, die menschliches Leben erhalten können?
Wusstest du, dass Bienen in Afrika Menschen vor dem Hungertod gerettet haben?
Wussten Sie, dass Propolis von Bienen eines der stärksten Antibiotika der Natur ist?
Wusstest du, dass Honig kein Verfallsdatum hat?
Wusstest du, dass die Körper der größten Kaiser der Welt in Särgen aus Gold begraben und dann mit Honig bedeckt wurden, um Veräulung zu verhindern?
Wusstest du, dass der Begriff "Flitterwochen" (Flitterwochen) von frisch verheirateten Paaren kommt, die nach der Ehe Honig zur Fruchtbarkeit konsumieren?
Wusstest du, dass eine Biene weniger als 40 Tage lebt, mindestens 1000 Blumen besucht und weniger als einen Teelöffel Honig produziert, aber für sie ist es ein Lebenswerk.
Danke ihr lieben Bienen ..!
Bienen-LexikonDein Lexikon rund um die Welt der Bienen
#Manuka
🧂🍯Honig und Natron – Ein Hausmittel aus der Volksheilkunde
Die Kombination aus Honig und Natron wird in der Volksheilkunde als unterstützendes Hausmittel beschrieben.
Rezept für Honig-Natron-Paste
Zutaten:
🔸 1 Esslöffel Natron (Backnatron, Natriumhydrogencarbonat, in Lebensmittelqualität)
🔸 3 Esslöffel Honig (Bio-Qualität, roh und unverarbeitet bevorzugt)
Zubereitung:
🔸Natron in eine kleine Schüssel geben.
🔸Honig hinzufügen und gründlich vermischen, bis eine gleichmäßige Paste entsteht.
🔸 Die Mischung bei niedriger Temperatur (z. B. im Wasserbad) für 1–2 Minuten leicht erwärmen, dabei ständig rühren, um die Konsistenz zu verbessern. Nicht überhitzen, um die Inhaltsstoffe des Honigs zu schonen.
🔸 Paste in ein sauberes, luftdichtes Glas füllen und im Kühlschrank lagern (hält ca. 1–2 Wochen).
Anwendung:
🔸 Täglich 1 Teelöffel (ca. 5 ml) der Paste 3-mal etwa 1 Stunde nach den Mahlzeiten (morgens, mittags, abends) einnehmen.
🔸 Nach der Einnahme 1 Stunde lang nichts essen oder trinken, um die Wirkung nicht zu beeinträchtigen.
⏰Empfohlene Dauer: Maximal 30 Tage, danach eine Pause einlegen.
📍Produkt: Kaisernatron
👉HIER✔️
⬇️ Bücher ⬇️
📍Natron - Das Millieu ist alles
👉HIER 📚
📍Alleskönner Natron
👉HIER 📚
Das Praxisbuch
📍 Natriumbicarbonat, Sodium Bicarbonate
👉HIER📚
Die erstaunliche Heilkraft von Natron.
🐝🌸🐝🌸🐝🌸🐝🌸
Echter Manuka Hönig : HIER✔️
🎁10% Code: GesundohneRezept❗️
#Manuka
Das stärkste Antibiotika kommt aus der Natur: Propolis ist eine von Bienen hergestellte harzartige Masse mit antibiotischer, antiviraler & antimykotischerWirkung.
Den enthaltenen Polyphenolen besitzen nachweislich antibakterielle, desinfizierende & antiseptische Eigenschaften mit antientzündliche & wundheilungsfördernde Wirkung gegenüber krankheitserregenden Bakterien.
Die enthaltenen Vitamingruppen B, C & E tragen als natürliche Antioxidantien freie Radikale abzufangen & zu neutralisieren.
Anwendung:
✅Immunsystem für Kinder & Erwachsene
✅Zahnfleischreizungen
✅Mundgeruch
✅Halsschmerzen & Grippe
✅Schleimhautverletzungen
✅Hautunreinheiten, wie zb. Akne
✅Narben & Warzen
✅Hautverletzungen
✅Neurodermitis & Ekzeme
✅Vorbeugung
👉Propolis in Bio- & Imker-Qualität aus deutscher Herstellung
🎁10% Code: GesundohneRezept🔥
🐝Power-Duo
🐝Gelee Royal
🐝Manuka Honig
🐝Bleib-Stark-Set
👉👉All-in-One-Set✔️
Gesund ohne Rezept 🌼✨
Mehr Hier ⬇️
https://t.me/GesundOhneRezept
#Manuka