Установить свойства виджета в 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
Еще немного о ярмарке 1703, а именно личный выбор. То, что хотелось бы унести с собой, пока виртуально.
◽️любой объект из уже упомянутого проекта Леонида Костина со стенда галереи Futuro. Если кратко, художник глубоко исследует икону как предмет - детально углубляясь в процесс производства и скрупулезно его повторяя в своих произведениях. В результате получаются невероятно красивые абстрактные предметы, наполненные интеллектуальным и духовным смыслом, вложенным в них ручным трудом, но свободные от сакральности. Влюбилась.
◽️пылающую картину петербургского стрит-арт художника Турбена (так же известного как Turbo), которую я назвала «Осенний лес». Цвет, композиция, пластика, абсурдный сюжет - нравится все.
◽️работы давно меня интригующей Вари Щуки (видео и картина на шелке) - похожие на позднесоветские эстетика и сюжеты(прошлое) соединяются с технологиями, синтетическим цветом, какой-то эфемерностью и нездешностью (будущее?). В этой точке образуется что-то очень хрупкое и щемящее, совпадая с моим ощущением того, что можно назвать «сейчас».
◽️ расколовшаяся в печи, но собранная вновь, керамика Вики Утикалко. Хрупкость, которая не сдается, превращаясь в красоту.
◽️завораживающие «Магические квадраты доктора Рюйша» Владимира Кустова, где имматериальность притворившейся бальзамированным трупом голограммы заземляется бескомпромиссностью металлических инструментов паталогоанатома, порождая новую вещественность и вечность.
◽️от голографических мумий к «живому» и деятельному Ленину Алексея Азарова. По-моему это дико смешно.
◽️и в завершение вполне упоротые зайцы (и не только) петербургского керамиста Артема Максимова: захотелось срочно вернуть на место огромный черный бабушкин комод - там они будут как дома!
Ярмарка продлится до 9 июня.
#artfair
Самые интересные, цельные и стильные стенды на ярмарке 1703 (по моей версии):
◽️галерея Futuro с проектом Леонида Костина
◽️ галерея Myth, представившая тотальную инсталляцию Егора Федоричева
◽️молодая галерея ультрасовременного искусства Jessica с бескомпромиссной абстрактной инсталляцией петербургских художников
◽️ Марина Гисич с как всегда цельной экспозицией из работ Ивана Горшкова, Константина фон Рибена и Владимира Кустова
◽️свежий и яркий стенд Maison25, представивший Сашу Рощина, Алису Спотс и Дмитрия Горбунова
◽️pop/off/art gallery с дерзким предложением своеобразных арт фьючерсов в виде пустых холстов Виталия Пушницкого
◽️изящный стенд коммерческого крыла KGallery под названием «Из профессорской квартиры.
Завтра снова отправляюсь в Манеж за подробностями😍
#artfair
Добралась до Санкт-Петербурга и ярмарки 1703. В холле встречает новая скульптура Ивана Горшкова и дискуссия о том, наличествует ли сегодня настоящая арт-журналистика. Что же, актуально. Вечером ждите репортаж.
Записки #follow_artпутешественника#artfair
Стенд Е9
"Искусство в спорте"
Любови Барыкиной
На «УНИКАЛЬНОЙ РОССИИ»
В Гостином дворе
Ул. Ильинка 4
ЖДЕТ ВАС
С 4-7.02.26
С 12:00-20:00
8.02.26
С 12:00-17:00
✅15 стран
✅22 Региона РФ
✅70 городов
✅7000 Участников
✅13 Музеев
#UniqueRussia
#ArtFair
#Moscow🇷🇺
#LiubovBarykina
Уважаемый
Александр Андреевич,
была рада видеть Вас на открытии моего стенда международного выставочного проекта
«Искусство в спорте»
в рамках художественной
выставки-форума
УНИКАЛЬНАЯ РОССИЯ 2026
в Гостином дворе!
Международный проект
«Искусство в спорте»
Любови Барыкиной -
15 Стран
22 Региона РФ
70 Городов
7000 Участников
13 Музеев
https://www.instagram.com/alexanderdobrovinsky?igsh=MTkxOWZ4N2hkM3VxZA==
#ArtInSports
#ArtFair
#UniqueRussia
#Moscow🇷🇺
Международный проект
«Искусство в спорте»
Любови Барыкиной -
15 Стран
22 Региона РФ
70 Городов
7000 Участников
13 Музеев
На главной сцене
«Уникальной России» 2026
Международный Проект
«Art in Sports»
представили звезды
всех творческих
направлений
России и Мира!
Создатель проекта, МСМК по художественной гимнастике,
Академик Российской
Академии Художеств
Любовь Барыкина выступила
с показательным номером
вместе с певицей,
актрисой театра «Ромэн»
Верой Жемчужной,
юной певицей Софьей Михеевой и Московским творческим коллективом сценической гимнастики «Краски»!
Ждём Вас в Гостином дворе
до 08.02.26 на стенде Е9
По адресу ул. Ильинка 4
#LiubovBarykina
#ArtFair
#Unique
#Moscow🇷🇺
03.02.26 на стенде E-9
выставочного проекта
«Искусство в спорте»
состоялось торжественное
открытие в рамках
художественной
выставки-форума
УНИКАЛЬНАЯ РОССИЯ !!!
https://t.me/UniqueRussia
Вера Жемчужная
https://www.instagram.com/vera_zhem?igsh=c292OHlkMTQ1aDhy
Софья Михеева
www.instagram.com/sofjaart?i...
и Московский коллектив
сценической гимнастики Краски
https://www.instagram.com/kraskigymnastics?igsh=MXNiMWZiZzZ0ZnpsOQ==
презентовали вместе с
Любовью Барыкиной проект
«Искусство в спорте»
на главной сцене
«Уникальной России»
в Гостином дворе!
Международный проект
«Искусство в спорте»
Любови Барыкиной -
15 Стран
22 Региона РФ
70 Городов
7000 Участников
13 Музеев
Спасибо моим гостям за
общение и прекрасную
атмосферу вечера!!!
Фото: https://www.instagram.com/span.ph?igsh=Z2Nja2xwYXY1cmJr
#LiubovBarykina
#ArtFair
#UniqueRussia
#Artist
#ArtInSport
03.02.26 на стенде E-9
выставочного проекта
«Искусство в спорте»
состоялось торжественное
открытие в рамках
художественной выставки-форума
УНИКАЛЬНАЯ РОССИЯ !!!
https://t.me/UniqueRussia
Международный проект
«Искусство в спорте»
Любови Барыкиной -
15 Стран
22 Региона РФ
70 Городов
7000 Участников
13 Музеев
Спасибо гостям за чудесную атмосферу и общение
💜💜💜
Фото: https://www.instagram.com/span.ph?igsh=Z2Nja2xwYXY1cmJr
#ArtFair
#UniqueRussia
#LiubovBarykina
#Artist
#Moscow🇷🇺
Видео сюжет о 4-ой масштабной художественно-промышленной выставки «Уникальная Россия» 2024,
в которой участвовал мой международный проект
«Искусство в спорте»
Совсем скоро 3.02.2026 стенд
Е-9 выставочного проекта
#ArtInSports приглашает
всех желающих в 16:00
на торжественное открытие
6-ой художественно-промышленной выставки Уникальная Россия !!!
#LiubovBarykina
#Exhibition
#Moscow
#Artfair
#UniqueRussia🇷🇺
3 и 4 декабря состоялся
Предпоказ «ОБЕРТОН»
от Cosmoscow
ЯРМАРКА СОВРЕМЕННОГО
ГРАФИЧЕСКОГО
ИСКУССТВА,
а ТОН ЦЕНТР
(культурный центр)
напоминает мне
мой любимый концертный
зал Дюссельдорфа
#TonhalleDuesseldorf
#ArtFair#Moscow
#Preview#LiubovBarykina
#Oberton#Cosmoscow