Установить свойства виджета в 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
Postrigay Gallery представила новую выставку работ художников-шестидесятников «Хрупкость вне времени».
«СУЩЕСТВУЕТ КРАСОТА НАСТОЛЬКО ХРУПКАЯ, НЕОПРЕДЕЛИМАЯ, ЭФЕМЕРНАЯ, ЧТО ОБЯЗАТЕЛЬНО ДОЛЖНА БЫТЬ ЗАКЛЮЧЕНА В ЖЕСТКУЮ РАМУ В ПРЯМОМ И ПЕРЕНОСНОМ СМЫСЛЕ - РАМУ ФОРМЫ, ИНАЧЕ ОНА УСКОЛЬЗНЕТ И ИСПАРИТСЯ, КАК ДРАГОЦЕННЫЕ ДУХИ ИЗ НЕЗАКРЫТОГО ФЛАКОНА» — Дмитрий Краснопевцев.
Магистральной идеей проекта становится то, что невзирая на сложный временной период смысл останется один — стремление художников создавать и выходить за рамки окружающей реальности даже в условиях неопределенности, держа фокус на том, что близко сердцу.
🗓️ 14 ноября - 01 февраля
⛳️ Cube.Moscow, ул. Тверская, 3
(здание отеля The Carlton, Moscow, – 2 этаж)
#галереялично#lichnogallery
#postrigaygallery#были_лично
Интересно, как сегодня художники переосмысляют связь человека и природы.
На выставке Postrigay gallery«Сад света» Маши Даниловской меня привлекло то, как она работает с границами. В ее живописи и керамике птицы и звери буквально растворяются в среде.
Концепция строится вокруг гипотезы Геи (Земля как единый организм), но без излишней дидактики. Особое впечатление оставляет серия «Острова». С одной стороны — это архетип потерянного рая, хрупкого и самодостаточного, с другой автор уходит от географии в чистую абстракцию, превращая остров в метафору внутреннего состояния.
Удивительной легкости и текучести первоначального рисунка на холсте Мария добивается создавая графику чернилами, переводя ее в цифровой коллаж и только затем она пишет маслом!
🗓️ до 24 мая
⛳️ул. Тверская, 3, -2 этаж
#были_лично#postrigaygallery
#машаданиловская#садсвета
Большой ивент прошел на прошедшей неделе в masters.
Postrigay gallery открыли новую выставку резидента галереи Анны Дёминой«Растворится в закате пение птиц». Абстрактные пейзажи будто погружают в другой мир, описывая переживания, связанные с соприкосновением природы.
Эмоционально, проникновенно!
🗓️ 22 октября - 16 декабря
⛳️ masters, Малый Патриарший пер, 5с1
#были_лично#аннадемина
#masters#postrigaygallery
Пропустили вчера открытие в Postrigay Gallery, где представили персональную выставку Надежды Ягофаровой «Зеркало дней».
Но вам от души рекомендуем, в экспозиции собраны сочные натюрморты и объекты, созданные художницей с 2020 года по настоящее время. Такие проекты помогают найти в повседневности что-то особенное, стоит просто остановиться.
🗓️ 20 февраля - 27 марта
⛳️Cube.Moscow, ул. Тверская, 3
#postrigaygallery#cubemoscow
#надеждаягофарова#зеркалодней
Так, с биографией Зубарева разобрались, теперь о главном — его теории времени. Художник видел время как живое пространство и выделял целых шесть его видов:
✔️Плоское время. Здесь всё повторяется в чётком ритме, создавая ощущение бесконечного калейдоскопа. То самое избыточное время.
✔️Изогнутое время. Пространство искривлено — реальность живёт по иным законам. Здесь совмещены разные координаты: временные, пространственные и эмоциональные. Некое искаженное время.
✔️Разорванное время. Время распадается на части, а участники событий существуют в разных ритмах. Картина становится визуальной метафорой разорванного времени.
✔️Реликтовое время. Это «протовремя» — холодное и безвоздушное. Оно просто присутствует, не участвуя в событиях, подобно поверхности древнего зеркала. Время до человека.
✔️Фактическое время. Самое человеческое из всех — настоящее, конкретное. Это время жизни, дыхания, того самого «здесь и сейчас».
✔️Световое время. Автономное время будущего, где остаётся только энергия и свет. Картина становится источником свечения, а время существует как чистая энергия.
P.S. Зубарев не просто рисовал — он создал целую философскую систему в красках. Теперь осталось определить, какое время вы чувствуете в своей жизни?!
#были_лично#postrigaygallery
#владиславзубарев#cubemoscow#раскрываявремя
Открываем для вас еще одного художника из плеяды нонконформистов. Вчера в Postrigay Gallery представили новую выставку — «Раскрывая время. Владислав Зубарев».
Этот художник был настоящим «арт-Штирлицем» — днем работал инженером, а ночью создавал смелое искусство. Участник знаменитой выставки в Манеже 1962 года, которую раскритиковал Хрущев, Зубарев прошел путь от студии «Новая реальность» до собственных экспериментов со временем. Его метод прост и гениален: он доверял интуиции, пытаясь сделать время видимым и осязаемым. Владислав не просто рисовал, а буквально «останавливал мгновение», что звучало бы безумно, если бы не было так здорово.
Так что эта выставка — отличный шанс открыть для себя имя, которое долго оставалось в тени, но точно заслуживает вашего внимания!
🗓️ до 21 января
⛳️ ул. Тверская, 3, -2 этаж
#были_лично#postrigaygallery
#владиславзубарев#cubemoscow#раскрываявремя
Вчера посвятили вечер Cube.Moscow, где галерея Postrigay провела открытие персональной выставки Кати Медведевой под названием«Таинство». Несмотря на почтенный возраст, 88-летняя художница лично присутствовала на вернисаже, что не может не вызывать восхищения и уважения к её преданности искусству.
Как отмечал Марк Шагал: «Катя Медведева — это чисто русский талант, она так же любит цвет, как и я». Живопись стала для художницы способом отстраниться от повседневных забот и возвыситься над ними. В своих работах Медведева преобразует непростые жизненные обстоятельства и личные трагедии в чистоту и свет — это и есть то самое «Таинство», к которому стремится автор.
Стоит заметить, что в начале весны в Cube.Moscow состоялось открытие 14-ти новых проектов. Для тех, кто еще не успел побывать — добавляем еще один повод к посещению арт-пространства.
🗓️ 1 апреля - 15 июня
⛳️ ул. Тверская, 3 (-2 этаж)
#были_лично#postrigaygallery
#катямедведева#таинство
#cubemoscow