Установить свойства виджета в 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
Antidoping boʻyicha oʻtgan forumlar yakuni muhokama qilindi
Toshkentda oʻtkazilgan nufuzli xalqaro sport tadbirlari oʻz yakuniga yetdi. Shu munosabat bilan bugun antidoping yoʻnalishida tashkil etilgan forumlar yakunlari hamda ular doirasida bildirilgan taklif va xulosalar muhokamasiga bagʻishlangan yigʻilish boʻlib oʻtdi.
—
Обсуждены итоги форумов по антидопингу
В Ташкенте завершились престижные международные спортивные мероприятия. В связи с этим сегодня состоялось совещание, посвященное обсуждению итогов форумов, организованных в рамках антидопингового направления, а также высказанных в ходе них предложений и выводов.
#Antidoping
👉@OlympicUz
olympic.uz I YouTube I Instagram I
“Olimpiya shaharchasi”da global antidoping boshqaruvini mustahkamlashga qaratilgan xalqaro forum boshlandi
“Olimpiya shaharchasi”da “Global antidoping boshqaruvini mustahkamlash: uygʻunlashtirish, muvofiqlik va mintaqaviy hamkorlik” mavzusidagi xalqaro forum oʻz ishini boshladi. Nufuzli tadbirda Butunjahon antidoping agentligi (WADA) Prezidenti Vitold Banka, Sport vazirligi hamda Milliy antidoping agentligi rahbariyati, shuningdek, xalqaro va mahalliy soha mutaxassislari ishtirok etmoqda.
—
В «Олимпийском городке» начался международный форум, направленный на укрепление глобального антидопингового управления
В «Олимпийском городке» начал свою работу международный форум на тему «Укрепление глобального антидопингового управления: гармонизация, соответствие и региональное сотрудничество». В престижном мероприятии принимают участие президент Всемирного антидопингового агентства (WADA) Витольд Банька, руководство Министерства спорта и Национального антидопингового агентства, а также международные и отечественные специалисты отрасли.
#Antidoping
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Milliy antidoping agentligi sportchilar bilan profilaktik uchrashuvlar oʻtkazmoqda
Oʻzbekiston Milliy antidoping agentligining masʼul xodimlari yangi mavsumga tayyorgarlik koʻrayotgan sportchilar bilan uchrashuvlar oʻtkazmoqda. Ushbu tadbirlarda koʻzlangan asosiy maqsad atletlar oʻrtasida dopingga qarshi kurashni kuchaytirish boʻlib, mutaxassislar sportchilarga doping qoidalarini buzishning salbiy oqibatlari, halol va shaffov sport haqida batafsil tushuntirish bermoqda.
Shuningdek, suhbatlar davomida Butunjahon antidoping agentligi tomonidan 2026-yil uchun yangilangan taqiqlangan tibbiyot vositalari roʻyxati hamda ularning tarkibi yuzasidan atletlarga atroflicha maʼlumotlar taqdim etilmoqda.
—
Национальное антидопинговое агентство проводит профилактические встречи со спортсменами
Ответственные сотрудники Национального антидопингового агентства Узбекистана проводят встречи со спортсменами, готовящимися к новому сезону. Основная цель этих мероприятий — усиление борьбы с допингом среди атлетов. В ходе встреч специалисты подробно разъясняют спортсменам негативные последствия нарушения антидопинговых правил, а также принципы честного и прозрачного спорта.
Кроме того, в рамках бесед предоставляется развернутая информация об обновлённом списке лекарственных средств Всемирного антидопингового агентства на 2026 год и об их составе.
#Antidoping
👉@OlympicUz
olympic.uz I YouTube I Instagram I
O‘zbekiston Respublikasi Milliy antidoping agentligida yangi aloqa-markazi o‘z faoliyatini boshladi.
Ushbu markaz sportchilar, murabbiylar va sport tashkilotlari uchun dopingga oid savollarga javob berish, zarur maʼlumotlar bilan taʼminlash hamda maslahat xizmatlarini ko‘rsatish maqsadida ishga tushirildi.
👉 Yangi xizmat barcha uchun, tunu-kun (24/7 rejimda) faoliyat olib boradi!
—
В Национальном антидопинговом агентстве Республики Узбекистан начал работу новый Колл-центр.
Call-центр создан для спортсменов, тренеров и спортивных организаций с целью оперативного ответа на вопросы, предоставления необходимой информации и консультирования по вопросам, связанным с допингом.
👉 Новый сервис работает круглосуточно (в режиме 24/7) и доступен для всех.
#Antidoping
👉@OlympicUz
olympic.uz I YouTube I Instagram I
“Prezident Olimpiadasi”da yosh sportchilar dopingga qarshi kurashish boʻyicha bilimlarini oshirishmoqda
Poytaxtimizda oʻtkazilayotgan “Prezident Olimpiadasi”da Milliy antidoping agentligi oʻz yoʻnalishi boʻyicha faol ish olib bormoqda. “Olimpiya shaharchasi”da tashkil etilgan maxsus burchakda agentlik xodimlari yosh sportchilarga dopingga qarshi kurashish, shuningdek, uning zararli oqibatlari haqida turli interaktiv usullar orqali tushuntirish ishlarini amalga oshirmoqda.
—
На “Президентской Олимпиаде” юные спортсмены расширяют знания в области антидопинга
В рамках проходящей в столице “Президентской Олимпиады” Национальное антидопинговое агентство активно проводит разъяснительную работу. В специально оборудованной зоне на территории «Олимпийского городка» представители агентства с использованием интерактивных форматов информируют молодых спортсменов о принципах борьбы с допингом и его негативных последствиях.
#Antidoping#PrezidentOlimpiadasi
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Dzyudochilarimiz uchun antidoping yoʻnalishidagi soʻnggi oʻzgarishlar boʻyicha seminar tashkil etildi
Dzyudo boʻyicha Oʻzbekiston terma jamoasi aʼzolari uchun antidoping yoʻnalishidagi soʻnggi oʻzgarishlarga bagʻishlangan seminar tashkil etildi. Oʻzbekiston Milliy antidoping agentligi mutaxassislari tomonidan tashkil etilgan tadbirda, sportchilarga yangi tahrirdagi “Jismoniy tarbiya va sport toʻgʻrisida”gi Qonunda antidoping boʻyicha kiritilgan oʻzgarishlar hamda Butunjahon antidoping agentligi (WADA) kodeksidagi yangiliklar yuzasidan batafsil maʼlumot berildi.
Tadbir davomida taqiqlangan moddalar roʻyxati, doping nazorati jarayonlari va sportchilar zimmasidagi masʼuliyat masalalari alohida tushuntirildi.
—
Для наших дзюдоистов организован семинар по последним изменениям в сфере антидопинга
Для членов сборной Узбекистана по дзюдо был организован семинар, посвящённый последним изменениям в области антидопинга. Мероприятие, проведённое специалистами Национального Антидопингового агентства Узбекистана, включало подробное разъяснение нововведений в новой редакции Закона «О физической культуре и спорте», касающихся антидопинга, а также обновлений в Кодексе Всемирного антидопингового агентства (WADA).
В ходе мероприятия отдельно были разъяснены вопросы, связанные со списком запрещённых веществ, процедурами допинг-контроля и ответственностью спортсменов.
#WADA#Antidoping
👉@OlympicUz
olympic.uz I YouTube I Instagram I