Установить свойства виджета в 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
💫Давайте вместе соберемся на арт-завтрак? #community
Совместно с рестораном RADIO мы организовываем арт-завтрак «Когда люди собираются», чтобы вдохновиться лекцией о сообществе Абрамцевского кружка и устроить нетворкинг. Подробнее о событии читайте в карточках 🤍
📎Билеты на мероприятие можно приобрести по этой ссылке.
ART FLASH
💫Как прошел 2025 год в ART FLASH Community?#community
Год подходит к концу, и мы подводим итоги в цифрах: мероприятия, проекты, новые участники — все, что произошло в ART FLASH Community в 2025 🤍
Если вы хотите стать участником ART FLASH Community и посещать эксклюзивные мероприятия в новом 2026 году, заполняйте заявку по ссылке🔥
ART FLASH
💫Каково это — быть частью ART FLASH?#community
У ART FLASH есть Community, которым мы по-настоящему гордимся. Это люди, неравнодушные к искусству, стремящиеся понимать и объяснять его. Мы спросили у участников, что для них значит быть частью ART FLASH и как это помогло им изменить свой взгляд на современное искусство.
Если вы тоже хотите смотреть выставки вместе с куратороми и посещать мастерские художников, оставьте бесплатную заявку по ссылке. Быть частью сферы искусства совсем необязательно 🤍
ART FLASH
💫Изучаем художников уличной волны вместе с ART FLASH Community#community
На этой неделе участники нашего коммьюнити посетили новую масштабную выставку в фонде Ruarts «5 углов». Экспозиция посвящена художникам и коллекционерам искусства уличной волны и объединяет пять частных коллекций.
На экскурсии куратор и арт-директор фонда Катрин Борисов рассказала о том, как тщательно и долго шла подготовка к открытию выставки. Вместе мы изучили три этажа экспозиции и обсудили, как искусство уличной волны мягко и гармонично вписалось в пространство фонда.
↗️Если вы хотите стать участником ART FLASH Community и посещать эксклюзивные мероприятия, заполняйте заявку по ссылке.
ART FLASH
💫Как прошел арт-бранч по мотивам Бухарской биеннале от ART FLASH#community
В прошлые выходные мы собрались в уютной атмосфере, чтобы поговорить об искусстве, путешествиях и вдохновении. Камерный арт-бранч объединил участников ART FLASH Community, друзей и всех, кто разделяет нашу любовь к современному искусству.
Фаундер ART FLASH Эмилия Манвельян, только что вернувшаяся из Узбекистана, рассказала о первой Бухарской биеннале — о художниках, форматах, кураторских решениях и духе города, где древность и современность переплетаются особенно гармонично.
За столом — узбекская кухня с авторским прочтением: ароматный плов, свежие закуски и домашняя пахлава. Разговоры текли свободно: о восточной эстетике, новой энергии региона и том, как путешествия расширяют границы восприятия искусства.
↗️Если вы хотите стать участником ART FLASH Community, заполняйте заявку по ссылке.
ART FLASH
💫Экскурсия в мастерские SISTEMA GALLERY с ART FLASH Community#community
Последние теплые деньки этой осени мы вместе с участниками ART FLASH Community провели в гостях у художников SISTEMA GALLERY, а именно — в их мастерских.
Художники нечасто пускают посторонних в свои творческие пространства — ведь именно там рождаются идеи, происходит самый интимный и важный процесс создания искусства. Тем ценнее для нас была возможность побывать в этих мастерских, заглянуть «за кулисы» творчества и по-настоящему почувствовать атмосферу, в которой работают современные художники.
Мы провели душевное и теплое время, поговорили о жизни и искусстве с Ростаном Тавасиевым, Дарьей Мальцевой, Мишей Бурым и Дарьей Калугиной. Узнали, как устроено их творческое пространство, какие идеи их вдохновляют и над чем они работают прямо сейчас.
↗️Если вы хотите стать участником ART FLASH Community, заполняйте заявку по ссылке.
ART FLASH
💫Сближаемся с Cosmoscow вместе с ART FLASH Community#community
Единственный минус масштабных ярмарок и выставок — в них легко запутаться и потеряться. Поэтому уже несколько лет мы проводим экскурсии по Cosmoscow вместе с экспертами для ART FLASH Community 🤍
Вместе с искусствоведом и креативным продюсером Анастасией Свиридовой гости пообщались с художниками и галеристами, ознакомились с пространством ярмарки, обсудили коллаборации и новые тренды искусства.
Анастасия напомнила участникам, как важно обращать внимание на свои чувства и эмоции во время взаимодействия с искусством. Так можно нащупать свой вкус и понять, какое искусство вам близко, а какое — не совсем.
↗️Если вы хотите стать участником ART FLASH Community, заполняйте заявку по ссылке.
ART FLASH
🌟Размышления о времени и пространстве: ART FLASH Communityна выставкеПушницкого с Сергеем Поповым#community
В четверг участники нашего коммьюнити посетили выставку «Студии. Ожидание» Виталия Пушницкого — совместный проект галерей pop/off/art и Marina Gisich Gallery, представленный в анфиладе Музея архитектуры им. А.В. Щусева.
Во время экскурсии вместе с галеристом Сергеем Поповым мы обсудили, как мастерская художника становится точкой пересечения времени и пространства, и почему «ожидание» может быть важным состоянием для искусства. Живопись, представленная более чем из 30 собраний, воспринималась особенно ярко — картины и музейные залы превратились в единое поле для наблюдения и размышлений.
Такие встречи дают возможность не только увидеть искусство, но и почувствовать его через личный диалог. Присоединиться к ART FLASH Community можно по ссылке.
ART FLASH
🎙Community Call with CEO!
This Friday, Foxy and Dan Andrian will host a Community Call where Dan will share the latest news, talk about the project's future, and answer your questions.
🟦Where: True Telegram channel
🟦When: September 20 at 4 PM UTC
Leave your questions for Dan in the chat with the hashtag #community and win 1 of 5 Bronze Status Cards! 💥
Don’t miss it!
💛 Website|Twitter|Truecoin chat| Instagram | YouTube
🎙Community Call with the CEO!
We finally caught Dan Andrian for a chat with the community!🔥
Tomorrow, Foxy and Dan will host a Community Call where Dan will share the latest news, talk about the project's future, and answer your questions.
🟦Where: @trueworld
🟦When: August 6, 1 PM UTC
Ask a question and win a prize!
1️⃣ — Post your question about the project in our Chat with the hashtag #community. Questions accepted until 08:00 AM UTC tomorrow.
2️⃣ — The 5 most interesting questions, as chosen by the team, will each win 50k Truecoins!
Don’t miss it!
💛 Website|Twitter|Truecoin chat|Truecoin local chats
🎙Community Call with Foxy!
This Friday, we’re getting together for a chat!
🟨Where: Our Telegram channel
🟨When: the 5th of July at 1 pm UTC
We’ll share the latest project updates, answer your questions, and give away 1 Whitelist to everyone present!
🔵To have your questions answered, post them in any Local chat with the hashtag #community.
🔵To get your Whitelist, send a screenshot from community call during the stream to our support @ze_bro. Requests after the stream won’t be accepted!
Don’t miss it!
💛 Website|Twitter|Truecoin chat|Truecoin local chats
iDubTG
A popular Telegram News and updates channel created by iDubno.
Recently hit 8K subscribers and celebrated the milestone with Telegram Dictionaries initial 1.0 release!
#community