Установить свойства виджета в 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
⚡️ Аналитический центр CNews Analytics опубликовал новый атлас «Импортозамещение 2025: итоги и планы», который содержит 4 карты рынка. На картах представлены ключевые разработчики и производители отечественного ПО и оборудования.
👨🏻💻 Эксперты отмечают, что импортозамещение остается локомотивом развития всей российской ИТ-отрасли. Отечественные вендоры расширяют портфели решений, превращая разрозненные разработки в целостные экосистемы, а заказчики, в свою очередь, ставят на первое место не только функциональность решения, но и его возможность легко интегрироваться в ИТ-ландшафт компании.
Наша компания представлена на 3 картах в 9 разделах:
🔹 Аппаратное обеспечение (раздел: сетевое оборудование)
🔹 Корпоративное ПО (разделы: аналитика, ESB, ITSM, отраслевые решения)
🔹 Офисное ПО (разделы: UC-платформы, системы ВКС, средства программной телефонии, чат-боты)
🔝 САТЕЛ остается одним из флагманов реализации стратегии импортозамещения и продолжает вносить свой вклад в построение технологического суверенитета страны.
📌 Полная версия атласа – по ссылке.
#картарынка#CNews
IVA One – лауреат премии «Инновация года» CNEWS
На ежегодном мероприятии «CNews FORUM Кейсы: Опыт ИТ-лидеров» состоялось награждение компаний за достижения в области внедрения и развития ИТ-технологий. Единая платформа IVA One, разработанная компанией IVA Technologies, была отмечена наградой «Инновация года в корпоративных коммуникациях».
IVA One — платформа для деловых коммуникаций и совместной работы, которая объединяет в одном удобном и безопасном суперприложении все ключевые инструменты для продуктивной работы сотрудников: корпоративный мессенджер, аудио- и видеозвонки, вебинары и конференции, календарь, адресную книгу, электронную почту и инструменты для оптимизации бизнес-процессов.
На торжественной церемонии объявления победителей «Инновация года» CNEWS награду получил заместитель генерального директора по исследованиям и разработке IVA TechnologiesВиктор Петров.
#CNEWS#IVA_Technologies#IVA_One
CNews: САТЕЛ и МЭИ открыли лабораторию ситуационного управления.
🔬 Лаборатория ситуационно-аналитического управления в кризисных ситуациях в энергосистемах была открыта на базе университета в рамках сотрудничества САТЕЛ и МЭИ по разработке инновационных технологий, направленных на повышение эффективности работы ТЭК.
👩🏻💻 Лаборатория оснащена учебным стендом, на котором представлено решение СМАРТ САЦ, разработанное компанией САТЕЛ. Стенд входит в состав испытательного полигона интеллектуальных электрических сетей и будет использоваться для обучения персонала энергокомпаний методам ситуационного управления.
Мы уверены, что в перспективе информационные технологии и научно-технические решения, разработанные совместно с НИУ «МЭИ», принесут положительные результаты от внедрения в реальные бизнес-процессы энергокомпаний, — рассказал Вадим Федоров, директор департамента цифровой трансформации компании САТЕЛ.
🔎 Подробнее о лаборатории в материале CNews.
#САТЕЛ#пресса#CNews
⚡️ CNews500: Крупнейшие ИТ-компании России
👨🏻💻 Аналитическое агентство CNews Analytics на протяжении 25 лет пристально следит за изменениями на отечественном ИТ-рынке. В текущем году агентство впервые опубликовало рейтинг 500 крупнейших российских компаний.
🔝 САТЕЛ вошел в первую сотню и по итогам исследования занял 52 место.
🤖 Компания продолжает активно развивать собственные программные и аппаратные решения, закладывая фундамент для цифрового будущего страны.
🔍 Полная версия рейтинга - по ссылке.
#САТЕЛ#нашиуспехи#CNews
⚡️Аналитический центр CNews Analytics впервые опубликовал карту российского рынка решений для унифицированных коммуникаций.
👉 На карте представлены ведущие отечественные поставщики UC-платформ. В исследовании принимали участие только те разработчики, чьи решения зарегистрированы в Реестре российского программного обеспечения Минцифры.
☑️ САТЕЛ традиционно принимает участие в исследовании рынка унифицированных коммуникаций. Компания была отмечена во всех тематических блоках карты.
💬 Эксперты обзора, среди которых и Роман Романов, руководитель центра программных разработок САТЕЛ, отметили рост спроса на российские UC-решения, которые включают в себя различные сервисы, начиная от традиционной телефонии и заканчивая современными ИИ-ассистентами. Сегодня заказчики ожидают от разработчиков, что система легко впишется в существующий ИТ-ландшафт, сократит временные затраты сотрудников и позаботится о сохранности персональных данных.
🔍 Полная версия карты – по ссылке.
#САТЕЛ#картарынка#CNews
📣Подтверждена технологическая совместимость программных продуктов «Галактики» и СУБД Arenadata Prosperity
ℹ️ «Галактика» и группа Arenadata объявили об успешном завершении тестирования совместимости программных решений «Галактика ERP», «Галактика EAM» и «Галактика MES» с отечественной СУБД Arenadata Prosperity (ADP).
Совместное использование продуктов «Галактики» и Arenadata обеспечивает предприятиям-заказчикам ускоренную обработку больших объемов данных и управление производственными и бизнес-процессами.
⛓Подробности в материале CNews
#Галактика#Arenadata#CNews
« Ben Shapiro vous hait ! » - Nick Fuentes
🇫🇷🤝🇺🇸 Ce Nick Fuentes est à des années-lumière du discours de nos identitaires Bollorisés.
Les vigies du lobby juif US s’attaquent (très) durement à Fuentes, lui mettant des bâtons dans les roues depuis dix ans ... ça doit sans doute vous rappeler quelqu'un en France 😉💪
#NickFuentes#AmericaFirst#MAGA#antisionisme#bolloré#cnews#RESISTANCE