Установить свойства виджета в 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
🍿 'The Bondsman': Kevin Bacon Returns from the Dead to Hunt Demons
📆Estreno: April 3, 2025
🎭Género: #Supernatural · #Action
Kevin Bacon ('Tremors', 'Footloose') is back and better than ever as Hub Halloran, a bounty hunter resurrected by the Devil himself to recapture escaped demons. 🔥 With its mix of 'RIPD' and 'Evil Dead' vibes, this Amazon Prime series promises a wild ride of action and dark humor.
What stands out is how it blends elements of classics like 'Brimstone' and 'Reaper', but with a fresh twist—Halloran must confront his own past while battling demons with chainsaws and shotguns. 😈 The dynamic with his estranged family adds emotional depth to this tale of redemption.
With Damon Herriman ('Once Upon a Time in Hollywood') and Beth Grant ('The Mindy Project') rounding out the cast, 'The Bondsman' feels like a worthy successor to beloved supernatural shows. 🍿✨
🍿 The Conjuring: Last Rites — The Warrens’ Paranormal Farewell
📆Release: September 5, 2025
🎭Genre: #Horror · #Supernatural
🍿Follow Movie
The Warrens are back for one final ride. The Conjuring: Last Rites draws from the real-life Smurl haunting — a family tormented by a demonic presence for over a decade. Vera Farmiga and Patrick Wilson return in what promises to be an emotional and dangerous sendoff. 🎬👻
It’s directed by Michael Chaves (The Nun II, The Curse of La Llorona), the same filmmaker behind The Devil Made Me Do It — the third installment that leaned more into courtroom drama than true horror. And yes, many of us still miss James Wan’s chilling touch. That said, the trailer teases a darker, more personal finale. A fitting end... or just another soulless exorcism? Either way, I’m sleeping with the lights on. 💡💀
🍿 'Presence': Soderbergh Revolutionizes Horror from the Other Side 👻🎬
📆Release: January 24, 2025
🎭Genre: #Supernatural · #Suspense
Steven Soderbergh brings us 'Presence', where Lucy Liu leads a family confronting an invisible entity in their home. The narrative from the ghost's perspective offers a fresh and tense take on the genre. The minimalist cinematography, utilizing a Sony A9iii, adds realism and suspense. Although some expected more horror, the blend of family drama and supernatural elements creates a unique atmosphere. With a script by David Koepp and high acclaim at the Sundance Film Festival, 'Presence' promises to be a compelling cinematic experience. 🔮✨
🇬🇧Supernatural #1-3
🇷🇺Сверхъестественное #1-3
Культовый сериал CW возвращается в комиксы! В этой истории Сэм Винчестер еще учится в Стенфордском университете и приезжает в Шотландию по программе обмена. Казалось бы, ради учебы, но все меняет загадочная незнакомка...
#комикс#comics#сверхъестественное#supernatural
#dc
🎶Правильный ответ на вчерашний интерактив👇
✅ Да, это Santana — легендарный коллектив, который стал настоящим мостом между роком и латинскими ритмами. Группа под руководством мексикано-американского гитариста Карлоса Сантаны произвела фурор на церемонии Грэмми 2000, получив 9 наград за один вечер — рекорд, который до сих пор вызывает восхищение.
Кто такой Карлос Сантана
Он родился в Мексике, в штате Халиско, и начал играть на скрипке ещё в детстве. Позже его заворожила гитара и... афро-кубинская перкуссия. В 1960-х он собрал группу, которая громко заявила о себе на легендарном фестивале Вудсток в 1969 году — с мощным выступлением, в котором электрогитара встретилась с латиноамериканскими барабанами.
Что сделало музыку Santana особенной
Они первыми смешали психоделический рок, блюз и джаз с латиноамериканскими ударными инструментами — например, с конгами и тимбалами (это барабаны, которые часто используют на Кубе и в Пуэрто-Рико). Получился совершенно новый, энергичный и эмоциональный стиль.
Самый громкий успех пришёл с альбомом Supernatural (1999), где группа сотрудничала с такими артистами, как Rob Thomas, Wyclef Jean, Eric Clapton и другими. Хит Smooth стал гимном целого поколения и звучит до сих пор.
С тех пор Santana стали символом латиноамериканского вклада в мировую музыку. И хотя сам Карлос давно живёт в США, свои мексиканские корни он всегда подчёркивает.
Факт напоследок
В честь Карлоса Сантаны названа улица в его родном городе Аутлан, а в 2003 году журнал Rolling Stone включил его в список 15 лучших гитаристов всех времён.
#Santana#КарлосСантана#Грэмми#ЛатинскаяАмерика#МузыкальныеФакты#ИсторияРока#Латинорок#TelegramQuiz#Smooth#Supernatural#ЛегендыМузыки
👉Всегда свежие новости о странах Латинской Америки!
Готовлюсь к новой роли в театре😁 Метла на парковке, котёл кипит, бусы из глаз хомяков надела, куриные лапки в карманах, крем Азазелло откупорила, не закрывайте Ваши форточки, я вылетаю😂
#ordinarysunday#sundayfunday#littlewitch#miracle#charmed#supernatural#happyhalloween#trickortreat#хэллоуин#ночьвсехсвятых #🧞♀️ #🧝🏻♀️ #🧚🏻♀️ #🧙🏻 #🎃#pumpkin#hellonovember#осерчала#разгневалас#затаилас#насупилас#барыня#боярыня #😂#могуеслихочу