Установить свойства виджета в 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
💫ART FLASH в СМИ#team
В мире современного искусства всегда происходит что‑то новое — и мы стараемся быть в центре этих событий. Даем комментарии, делимся экспертизой об искусстве и разбираем интересные кейсы. Наша цель — не просто информировать, но и помогать аудитории лучше понимать, как развивается арт‑сфера.
Делимся некоторыми из наших публикаций в СМИ за 2025 год:
💫Сноб: 5 новых правил арт-рынка
💫Ведомости:материал о новой волне коллекционеров
💫РБК: роспись коридора реабилитационного центра «Кораблик» от ART FLASH, художника Гарри Зуха и фонда ОРБИ
💫MyDecor: обзор Первой биеннале современного искусства в Бухаре
💫Archi.ru: спецпроект «Азбука конструктивизма на ясном языке» от ART FLASH и филиала Третьяковской галереи в Самаре
💫NOW: Эмилия Манвельян о конференции ART FLASH на стыке искусства и бизнеса
💫Sostav: социологическое исследование восприятия и динамики развития сферы искусства в России от лаборатории Luch Research при участии ART FLASH
ART FLASH
💫Какими были наши новогодние каникулы?#team
Зимние праздники у нашей команды были насыщенными, но очень расслабленными. Рассказываем, что делали 🤍
⭐️Слушали оперу на концерте «Новый год в Вене» в Большом зале консерватории им. П.И. Чайковского.
⭐️Были на выставке «Из Пекина в Москву: диалог культур» в Третьяковской галерее.
⭐️Путешествовали в уютные заснеженные города: Тарусу, Ярославль, Ростов и Рыбинск.
⭐️Экспериментировали с оливье под новогодние фильмы и строили пряничные домики.
⭐️Праздновали Рождество и впервые запекли утку с яблоками.
⭐️Покоряли горные вершины Южного Урала и катались на сноуборде.
⭐️Много времени проводили за городом и на природе, гуляли и виделись с близкими.
ART FLASH
💫Итоги года арт-экосистемы ART FLASH#team
2025 год подходит к концу — год, наполненный новыми проектами, событиями, коллаборациями и значимыми партнерствами. Команда ART FLASH продолжает расти и развиваться, чутко отвечая на новые тенденции арт-рынка и расширяя границы экосистемы.
Самыми яркими моментами и проектами года мы делимся с вами в сегодняшних карточках. Оставайтесь с нами в следующем году — впереди еще больше идей, форматов и вдохновения.
Делитесь в комментариях, чем вам запомнился 2025 год ✨
ART FLASH
💫Медиа 2026: год тихих форматов, локальных историй и искусственного интеллекта#team
Привет! На связи главный редактор ART FLASH Алина Наимбоева 🤍
13 декабря по всему миру отмечается День главного редактора, и в честь своего профессионального праздника я решила поделиться своими наблюдениями о том, что будет формировать медиапространство в 2026 году.
С каждым годом медиа трансформируются, и вместе с ними меняются привычки аудитории и язык контента. В карточках — 5 ключевых трендов, которые, на мой взгляд, станут важными в новом году 👆
ART FLASH
#team
Kuni kecha jamoadagilarni ‘muhim yig’ilish bor’ deb ofisga chaqirdik. Maqsad, 8-mart munosabati bilan syurpriz qilib tabriklash va iftorlik qilib berish edi.
Qizlarimiz kelganda hayron) Bollarimiz ‘mujik’, ularni qo’lini so’viq suvga urdirmasdan ‘don-don ziki’ o’ynab, o’zlari idishlarni yig’ishtirib, yuvib qo’yishdi.
Shunday jamoamiz borligiga ko’z tegmasin✨
Para esta Mini-ColecciónPekeArt nos creó cuatro diseños de cajitas, uno muy específico para el conjunto de "La Noche Estrellada" (👀mira el reel anterior 👀) y estos que te mostramos hoy, muy identitarios de Bia con sus ilustraciones creadas por @draw_my_journal
A este #team le encantó todo el proceso y resultado, cuéntanos tú ¿Te gustó esta colaboración?👇
📷Mira el Reel en Instagram📷
Arseniy Key:
Более 10 лет занимаюсь компьютерной графикой. Первая моя работа была на телевидении. Я делал оперативную графику – создавал текст и плашки для прямого эфира. Много работал с видео продакшенами – корпоративными фильмами, рекламой. В текущий момент занимаю должность артдиректора медиа продакшена. Но моя страсть привела меня к G-Bots, я полностью сосредаточен на проекте и отношусь к нему как к своему ребенку.
В художественное творчество я пришел естественным образом, любовь к 3D графике у меня была с детства. Мне всегда нравились игрушки – Sega, Денди, Play Station. Эта эстетика вдохновляет меня до сих пор. Помню, я смотрел Историю игрушек и думал: “Ничего себе, это же практически как в реальности!” Сразу захотелось научиться делать также. Около года назад я попал в мир NFT, с тех пор мои мысли были заняты привнесением в эту технологию чего-то действительно крутого. Поэтому G-Bots – это не только роботы, но и концентрация опыта и любви к прекрасному.
Ставьте сердце, если было интересно! ❤️
#team
Мы запускаем серию постов, в которых будем подробно рассказывать о каждом члене команды. Сегодняшний наш герой – Arseniy Key – артдиректор и главная творческая сила G-bots. Именно он создал основную визуальную концепцию ботов.
Соцсети Arseniy Key:
Instagram
Behance
Все посты будут маркированы хэштегом #team
А у нас сегодня не один, не два и даже не три ивента! У Олега Крючкова сегодня день рождения! Мы поздравляем Олега и желаем его многогранной личности блистания, улыбания и процветания! #positive#team
💫Время планировать отпуск вместе с ART FLASH на 2026 год#worldart#team
Мы отправляемся во вдохновляющие арт-туры по всему миру — от Нижнего Новгорода до Парижа. Вас ждут 8 авторских программ, наполненных современным искусством, гастрономическими открытиями и неповторимой атмосферой творчества и путешествий. Подробнее о каждом направлении мы рассказали в карточках.
📌Хотите узнать, какой тур идеально подходит именно вам, или уже готовы забронировать место, пока его не заняли? Пишите на наш аккаунт @ARTFLASH_Team или в комментариях слово «арт-тур» и мы отправим вам всю информацию лично 🤍
ART FLASH