Установить свойства виджета в 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
🌎 Carved into towering cliffs in Mali, the villages of the Dogon people are famous for their complex cosmology and creation myths. Ethnographers recorded beliefs about the Sirius star system and ancestral spirits called Nommo in the early 20th century, making Dogon legends a focus of anthropological study. ✨
#Dogon⚡#mythology⚡#anthropology⚡#Africa
👉subscribe Interesting Planet
👉more Channels
L'Orchestre Kanaga de Mopti — L'Orchestre Kanaga de Mopti (Mali Kunkan, 1977)
#funk#afrobeat#griot#dogon#Mali
В 1977 году малийский правительственный лейбл Mali Kunkan выпустил серию пластинок, среди которых был и этот священный Грааль малийской музыки. Ансамбль происходит из города Мопти и назван по имени большой церемониальной маски Канага народа Догонов.
На первой стороне пластинки первым идет трек Kulukutu, вокальное вступление которого посвящено празднованию бракосочетания. Композиция N'Do N'Do обычно сопровождает танец, исполняемый детьми в дни Рамадана. Завершает первую сторону трек Sare Mabo о ткачах племени Догонов.
Вторая сторона открывается композицией Kanaga, рассказывающей о маске Догонов и танцорах, которые носят ее во время ритуальных церемоний. Затем следует песня в стиле певцов-гриотов Gambari, исполняемая во время свадебной церемонии и восхваляющая могущество жениха. Завершающий трек Sory Bamba посвящен лидеру группы Сори Бамба.
Spotify | AppleMusic | VK
TASTE OF AFRICA | Мифология догонов: лад и ритм мира 🌌
Догоны (Мали, Западная Африка) 🇲🇱 создали одну из самых глубоких космологий региона - систему, где мир держится на равновесии, а человек участвует в его сохранении через общину, ритуал и память предков 🧬🤝
Если смотреть современным взглядом, здесь легко увидеть параллели с идеей «ритмов» - как языка сонастройки человека и мира.
✨ Лад, соразмерность и «резонанс»
Догоны мыслят Вселенную как устроенную и связанную: гармония возникает там, где части согласованы между собой⚖️
Красота в понятиях догонов это ощущение правильной собранности, а образ космического яйца в мифах - символ цельного мира, где всё занимает своё место.
💧 Амма и Номмо: сотворения жизни
✨Амма - верховный творец, источник начала.
💧Номмо - первосущества/предки-духи, связанные с водой, дождём, очищением и плодородием. В символическом смысле это силы, которые приносят жизнь, порядок и “человеческий уклад”: речь 🗣️, общинность 🤝, земледельческий ритм 🌾
🦊 Юругу: тень мира и причина действовать - фигура разлада и одиночества. Он не «злодей из сказки», а напоминание: хаос всегда возможен, поэтому гармония - это работа, а не данность 🔁
👥 Двойственность и близнецы: баланс как принцип
Для догонов важна парность: мужское/женское, день/ночь ☀️🌙, сухое/влажное - мир держится на дополняющих полюсах.
👥 Образ близнецов здесь - знак правильной соразмерности: противоположности не уничтожают друг друга, а собирают целое.
Ритуал как «технология перехода»
Космология догонов - практический способ жить.
🎭 Масочные и поминальные обряды (например, dama) помогают общине пройти переходы - жизнь/смерть, утрата/восстановление - и удержать связь с предками 🕊️
🕯️ Большие циклические церемонии вроде Sigi (проходят раз в 60 лет!!!) часто описывают как обновление коллективной памяти: повторение основания мира, чтобы мир снова «собрался»
Вывод: мифология догонов напоминает:
реальность держится на ритме и ладе:
в природе 💧🌾,
в обществе 🤝
в человеческой жизни 🔄.
А красота - переживание соразмерности частей и целого✨
Для вас миф - это прежде всего история 📖 или способ удерживать равновесие ⚖️?
Пишите в комментариях🙏
🌟Ритмическое путешествие продолжается – Dogon🌟
#TasteOfAfrica#Dogon#Mali#AfricanHeritage#Mythology#Cosmology#Ritual#Dama#Sigi#Африка#Культура#Ритм#Красота#Традиции