Установить свойства виджета в 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
🤝 Друзья, коллеги, нетворк!
В рамках партнёрской инициативы 🖇Startech.vc совместно с ⭐ AISummit и
⚡️@iGlobalCom у нас для вас 6 пригласительных на церемонию награждения Awards.Startech.vc в ВЭБ Центре 13.09.2024.
Пригласительные 🖇Startech получат те 6 участников ⭐AIsummit.ru, кто воспользуется промокодом iGlobal50 на сайте AISummit.ru для приобретения билета.
Для получения промокодов, если Вы заинтересованы, обратитесь в личные сообщения или тэгните в @iGlobalChat Сашу Бреус @AlexandraBreus.
💡 Как воспользоваться предложением:
1. Перейдите на сайт ⭐AISummit.ru и выберите билеты
2. Введите промокод iGlobal50 при оформлении билета, и Вы получите 50% OFF (скидку)
3. После оплаты участия с 50% скидкой пришлите скриншот своего билета в лс @AlexandraBreus, и в ответ Вы получите свой пригласительный на церемонию награждения 🖇awards.startech.vc.
📍⭐AIsummit.ru 11 — 12 сентября
и 🖇Awards.Startech.vc 13 сентября пройдут на одной площадке в Москве, ВЭБ Центр, Новинский бульвар 31.
✨ Не упустите шанс стать частью главного события осени в Москве по теме практики и юзкейсов применения AI сегодня и встретиться с лидерами индустрии для максимально качественного нетворкинга!
#AISummit#iGlobal#StartechAwards#Промо#партнерскийпост
На саммите L’Action pour l’IA обсуждали не только инвестиции и технологии, но и риски, которые несет ИИ. Подмена реальности, автоматизация рабочих мест, манипуляции общественным мнением — все эти вопросы стали главными темами дискуссий.
Франция делает ставку на «разумное регулирование»: ИИ должен помогать людям, но не заменять их полностью. Париж предлагает жесткие законы по защите авторских прав и персональных данных, что должно предотвратить монополизацию технологий крупными корпорациями.
«Мы ускоряем инновации, но не отказываемся от наших ценностей. Человек останется в центре цифровой революции», — заявил Макрон.
Важный момент: Франция против бездумного копирования китайской и американской модели. В США ИИ — это бизнес-актив, в Китае — инструмент госконтроля. В Европе же хотят создать «гибридную модель», которая обеспечит и развитие технологий, и соблюдение прав человека.
На фоне проблем с регулированием ИИ во всем мире Франция предлагает собственные решения.
Вопрос только в том, готовы ли другие страны принять эту модель?
61 страна, включая Китай 🇨🇳 , подписали итоговую декларацию парижского саммита и согласились на «открытый, инклюзивный и этичный искусственный интеллект».
Однако подписи США и Великобритании в этом документе отсутствуют, как результат противоречий. Но Европа 🇪🇺 едина и ее поддерживает Индия 🇮🇳.
#такиедела#ИИ#технологии#Франция#AIsummit
@nobody_cares_but
Когда ЛЮДИ перестанут бояться РОБОТОВ 🤖?
Вопрос, который звучал на каждом углу на AI SUMMIT, грандиозном форуме, посвященном инновационным технологиям и их влиянию на нашу жизнь.
Под эгидой организатора этого замечательного мероприятия, @tatyanabenua Татьяны Бенуа, великие умы собрались, чтобы обсудить будущее искусственного интеллекта.
И я, задав этот вопрос директору центра робототехники Сбера, Алексею Гонноченко, получил на него неожиданный ответ.
Ведь робототехника - это не только сфера технологий, но и психологии. В своем ответе он рассказал, как с каждым годом роботы становятся все более частью нашей повседневной жизни, помогая нам в самых разных сферах - от медицины до финансов.
Именно на AI SUMMIT мы видим, как этот процесс становится все более неотъемлемой частью нашего будущего.
Но вернемся к вопросу - когда же мы перестанем бояться роботов? Может быть, ответ кроется в осознании их потенциала и того, как они могут улучшить нашу жизнь. А может быть, все дело в принятии того факта, что они уже давно с нами, и лучше начать использовать их возможности в нашу пользу.
Форум AI SUMMIT стал не только местом обсуждения самых передовых разработок, но и отличной площадкой для нетворкинга и обмена идеями.
Спикеры были на высшем уровне, а атмосфера просто не передаваема словами. Подводя итог, хочется сказать: спасибо, @tatyanabenua Татьяна, за этот великолепный форум, и продолжайте в том же духе, а мы будем рядом и поможем! #AIsummit#инновации#робототехника#будущее#бизнес#ии#ai
Да снова потребовалось много времени, но лучше поздно чем никогда. Не очень большой, но всё же довольно разврнутый репортаж с впечатлениями и выводами с ИИ саммита в Париже 🇫🇷
Кому интересно и есть 18 минут времени, ссылка на видео тут 👉🏽жми сюда
Буду рад мнениям в комментариях как в чате так и под видео 💭
#AIsummit#Франция#гражданингорожанин#ютуб#влог
@nobody_cares_but
⚡️#партнерскийпост
📅Уже в этот Чт, 27.11, приглашаем всех, кто в Москве, на ⭐️AISummit.ru.
Александра Бреус, младший партнёр ⚡️@iGlobalCom, @iGlbalChat и директор коммерческой вертикали 👍 Totem mobile ad platform, поделится практическим опытом и актуальными данными о применении AI в рекламе — в том числе на примере решений Totem.
🔎 В программе выступления:
• как ML оптимизирует RTB и ускоряет обучение рекламных кампаний;
• как AI усиливает персонализацию и адаптацию креативов в реальном времени;
• где и как AI-ассистенты уже упрощают работу баеров в запуске и управлении размещением;
• как будет развиваться рынок AI в маркетинге в ближайшие годы — на основе Gartner Hype Cycle, отчётов McKinsey и IDC.
📌 Короткий тизер по данным из исследования:
Глобальный рынок AI в маркетинге продолжает расти и, по прогнозам Market US и Salesforce, достигнет $214 млрд к 2033 году — поэтому автоматизация ставок, персонализация и AI-ассистенты уже становятся отраслевым стандартом, а не экспериментами.
🎟 Промокод: iGlobal50 — скидка 50% на участие.
#AISummit#AISummit2025#AdTech#AI#Маркетинг#iGlobal#TechEvents
Вопросы, комментарии, дополнения — смело пишите в ⚡️@iGlobalChat.
p.s. от лица сообщества выражаем благодарность Татьяне Бенуа ⭐@tatyanabenua за возможность поделиться опытом среди глав компаний, владельцев бизнеса и разработчиков IT-решений