Установить свойства виджета в 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
🫨Когда реклама не работает — виноват не канал, а хаос.
Можно запускать баннеры, таргет и SMS — сколько угодно.
Но если каждый инструмент играет свою партию — вместо стратегии получится какофония.
🔝 В VEON AdTech мы не «запускаем рекламу».
Мы строим систему.
• Где Big Data говорит, а не догадывается🔈
• Где каждый канал встроен в CJM, а не идёт сам по себе👣
• Где бизнес не гадает, а измеряет: что работает, где, на кого и почему🪧
🔜В следующих постах покажем, как это работает на практике: от точечных SMS до масштабной экосистемы с автоматизацией.
❓А у вас в стратегии — больше интуиции или цифр?
#VEONAdTech#BigDataMarketing#DigitalAdvertising#PerformanceMarketing#MarTech
🗣Разговор о тенденциях, которые видны уже сегодня, и решениях, формирующих развитие индустрии завтра
25 ноября в MDIST при поддержке Маркетинговой Ассоциации Узбекистана и IT Park Uzbekistan прошла конференция «Digital Uzbekistan: Transformation and Development» — событие, которое объединило представителей рекламных агентств, маркетинговой индустрии и ИТ-сферы.
Профессионалов, которые не просто наблюдают за трансформацией, а ежедневно работают над развитием digital-рынка в Узбекистане.
🎤Среди ключевых спикеров — CEO VEON AdTech Иван Масютин.
Выступая в секции Digital Transformation and Market Evolution, он подчеркнул, что цифровая трансформация давно перестала быть фоновым процессом. Сегодня это фундамент, который определяет, как бренды принимают решения, выстраивают коммуникации и конкурируют на растущем digital-рынке.
🪙Отдельный фокус Иван уделил диджиномике — цифровой экономике, меняющей привычные модели развития брендов. Он отметил, что именно она формирует новую логику рынка: это экономика, где скорость, технологичность и глубокое понимание процессов становятся частью стратегии, а не набором разрозненных инструментов.
Иван объяснил, почему диджиномика уже влияет на решения компаний и задаёт направление развития digital-сектора.
🔈После выступления состоялась активная панельная дискуссия. Участники задавали вопросы о стратегических направлениях развития digital-рынка — как в Узбекистане, так и за его пределами. Интерес к теме показал, насколько высок сегодня запрос на глубокую экспертизу и понимание цифровых процессов.
💎 ЭкспертизаVEON AdTechпомогаетрынку расти быстрее и увереннее: знания становятся опорой для компаний и специалистов, которые стремятся строить цифровое развитие не по шаблонам, а через стратегическое, продуманное движение вперёд.
#VEONAdTech#Diginomics#DigitalTransformation#MarketEvolution#AdTech#MarTech#Innovation#TechConference#VEONAds
👋👋Всё о digital-рекламе в Узбекистане: аналитика, лайфхаки и готовые решения.
🌍🎥 Netflix & Amazon DSP: союз в программатик-рекламе
С четвёртого квартала 2025 Netflix предоставляет рекламодателям Amazon DSP доступ к своему рекламному инвентарю в 11 странах — США, Великобритания, Германия, Япония, Бразилия и др.
🤖 Платформа Amazon DSP будет использовать ИИ-технологии для автоматизации планирования, покупки и измерения эффективности рекламы. Это позволит рекламодателям точнее таргетировать, быстрее запускать кампании и эффективнее их оптимизировать.
🧐Почему это важно:
Более широкий рекламный охват за счёт Netflix-контента и аудитории в разных регионах
Усиленная автоматизация и оптимизация кампаний с помощью ИИ
Возможность интеграции с глобальной аудиторией и данными Amazon
Увеличение эффективности рекламных вложений через DSP-систему
#Netflix#AmazonDSP#программатик#digital#martech#ИИ#campainoptimization#globalmarketing#adtechсс
ADWAVE