Установить свойства виджета в 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
Level up! 🔥 В «Фантастике» обновили главную звезду
Популярная нижегородская достопримечательность, красотка «Фанни» она же «Синяя женщина» — одна из четырех жанровых скульптур на территории ТРЦ «Фантастика» — дождалась апгрейда.
Теперь эта икона стиля царит в галерее в неоновом индиго, окруженная светом, зеленью и парящей надписью для идеальных фото✨
Команда ТРЦ, вы молодцы! 🤗
Ждем тюнинг для Циркачки, Мэрилин и чилл-мэна! ❤️
#тцвсяроссия@girlinmall
#фантастиканн#publicart#унас
🏖️Кейс: Как ТЦ Alegro Setúbal 🇵🇹 вышел за пределы своей территории на… пляж
🤩 В современной экономике впечатлений торговые центры сталкиваются с новым вызовом. Их главный конкурент — не соседний молл, а онлайн-кинотеатр, городской парк или фестиваль под открытым небом. Борьба идет за время и внимание покупателей. Выигрывает тот, кто выходит за рамки привычного и становится частью жизни города.
Именно этот подход блестяще демонстрирует кейс португальского ТЦ Alegro Setúbal в Большом Лиссабоне с кампанией Ninja da Areia (Песчаный Ниндзя).
⚙️ Исходные данные:
ТРЦ разместил на популярном пляже Praia da Figueirinha брендированную полосу препятствий. Кампания сопровождалась промо в социальных сетях:
Солнце, море и море адреналина! 🌊💥 Этим летом на пляже Фигейринья вас ждет новое испытание: Песчаный Ниндзя 🧗♂️☀️ До 30 сентября присоединяйтесь к веселью и преодолевайте себя в перерывах между заплывами! 😎
💪🏻Почему это крутой кейс?
Потому что это идеальный пример того, как современный брендинг выходит за пределы физического пространства и традиционной рекламы.
1️⃣ Выход в «массы»: от торгового зала к пляжу.
Вместо того чтобы работать только с уже «дошедшим» посетителями у себя, Alegro Setúbal отправился туда, где его аудитория уже проводит время, отдыхает и получает удовольствие. ТЦ интегрировался в популярную городскую локацию, тем самым вторгаясь на территорию «конкурентов» за досуг.
2️⃣Брендинг через действие, а не слова. Проект предлагает уникальный опыт — спортивное развлечение. Бренд дарит эмоции, адреналин и веселье, напрямую ассоциируя себя с активным и ярким стилем жизни. Это формирует гораздо более глубокую эмоциональную связь, чем скидки.
3️⃣Создание нативного контента.
Полоса препятствий стала естественной фотозоной. Посетители пляжа сами генерировали контент, делясь своими достижениями в социальных сетях и отмечая бренд. Хэштеги AquiAgoraAlegro и AlegroSetúbal превратились в синонимы летнего приключения, а не просто шоппинга, обеспечив кампании вирусный охват.
4️⃣Конкуренция на уровне ценностей.
Задавая вопрос «Кто сказал, что отдых и проверка своих возможностей несовместимы?», бренд вступает в диалог с аудиторией на уровне ценностей. Он позиционирует себя не как место для потребления, а как партнер, который помогает делать жизнь интереснее и насыщеннее.
💼Резюме:
Кейс «Песчаный Ниндзя» — это манифест современного ритейл-маркетинга. Он доказывает, что для удержания аудитории нужно перестать быть просто «центром торговли» и стать центром притяжения и частью городской культуры.
Инвестируя в уникальные впечатления за пределами своих стен, Alegro Setúbal строит долгосрочную лояльность и делает свой бренд релевантным в мире, где внимание — главная валюта.
По материалам компании NHOOD Portugal
#неунас#кейс#publicart#тципляж#августомания
InvisAbility — Snow Globe Projections in Hobart📖
July 2025 · Hobart Town Hall · Tasmania
The Town Hall becomes a snow globe.
😇 As part of the InvisAbility project, this immersive installation uses light projections and interactive sound to tell stories of people with disabilities — in ways that are gentle, poetic, and public.
It’s not just art — it’s presence made visible through tech.
Created with community input and designed for everyone who’s ever felt unseen.
Public space becomes a space of care, sound, and shimmering empathy☁️
#InvisAbility#PublicArt#ImmersiveArt#Accessibility#ArtAndTech
Am 11. September, anlässlich der Berlin Art Week, eröffnen wir eine Ausstellung, die den Blick auf die zeitgenössische russische Public Art richtet.🥳
🩵 Sie zeigt ihre Entwicklung, ihre Relevanz im kulturellen Leben und lädt dazu ein, neue künstlerische Perspektiven zu entdecken.
🩵 Die Ausstellung wurde vom Künstler, Bildhauer und Architekten Roman Ermakov gemeinsam mit der Kuratorin, Forscherin und Produzentin Anna Malik-Korolenkova entwickelt. Ihre umfassende Recherche bringt künstlerische Praktiken und institutionelle Initiativen zusammen und eröffnet einen einzigartigen Einblick in das Feld der Public Art.
🎊DieVernissage bietet mehr als nur einen ersten Blick auf die Werke: Hier gibt es die Gelegenheit, direkt mit den Kuratoren und Künstlern ins Gespräch zu kommen, Ideen auszutauschen und die Atmosphäre der Eröffnung mitzuerleben.😍
🗓️Kommt nächsten Donnerstag um 19:00 Uhr vorbei und bringt Freunde mit! Wir freuen uns auf euch!🥰
📲Anmeldung
#vernissage#ausstellung#publicart#russland#kunst#künstler#event
Marianne & Edward Gibson Art Museum — New Hub for Art & Academia📖
Opening September 20, 2025 · Simon Fraser University, Vancouver area
✉️Simon Fraser University launches its first purpose-built museum — a 12,000 sq ft space designed to foster cross-disciplinary art, learning, and creative community.
What to expect:
— Admission-free exhibitions and a research laboratory
— Opening show Edge Effects: works by 15 artists on themes of cultural boundary and identity
— Architecture by Hariri Pontarini, reflecting SFU’s original ethos of ecological campus design
A museum born from the legacy of educators Marianne and Edward Gibson, created to bridge academic visions and inclusive public engagement🙄
#GibsonArtMuseum#SFU#ArtAndAcademia#PublicArt#MuseumNews