Установить свойства виджета в 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
🏢O‘zbekiston Respublikasi Vazirlar Mahkamasi huzuridagi Biznes va tadbirkorlik oliy maktabida "Yoshlar buyuk kelajak" shiori ostidagi tadbir bo‘lib o‘tdi.
🇺🇸ENG
🇷🇺RU
#GraduateSchool#YouthDay#Uzbekistan
Web-site | Telegram | Facebook |Instagram
🌎”Butunjahon Yoshlar Festivali-2024” da kundalik yo’l hamrohingizni qaytadan kashf eting!
Radio bizning kundalik sayohatlarimizda sodiq hamrohimiz bo'lib, yangiliklar, musiqa va qiziqarli hikoyalarni yetkazadi. Siz sevgan har bir stansiyaning o'ziga xos hikoyasi va kundalik qatnovingizni qiziqarli va ma'lumotli qilish uchun tinimsiz mehnat qiladigan maxsus jamoalar mavjud.
Bu tadbir sizning ular bilan uchrashish, maftunkor radio tarixi va vaqt sinovdan qanday muvaffaqiyat bilan chiqib kelayotgani haqida ajoyib hikoyalarini tinglash imkoniyatingizdir.
🧾Uchrashuv 28-iyun kuni 10:00da Yoshlar ijod saroyining Orkestr zalidabo‘lib o‘tadi.
🎙Radioning abadiy jozibasini his etish uchun bizga qo’shiling!
📝Ishtirok etish uchun @yoshlaruchrashuvibot orqali ro‘yxatdan o‘ting
#YoshlarKuni#YouthDay
🕊@dkattakhanova📱Facebook
📱Instagram🌐LinkedIn🕊X
Dunyo yoshlari Toshkent viloyatida.
🌎Toshkent viloyatida “Butunjahon Yoshlar Festivali-2024” doirasidagi bir qator uchrashuv va ekologik loyihalar o’tkazildi.
Jumladan, BMTning “Iqlim o‘zgarishi bo‘yicha hadli konvensiya” doirasida yoshlar konferensiyasi va “Astrum IT” akademiyasida ochiq muloqotlar tashkil etildi.
📎Batafsil:gov.uz/yoshlar/news/view/15139
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
🌎“Butunjahon yoshlar festivali” doirasida uchrashuvlar davom etmoqda
Kuni kecha, Yoshlar ijod saroyidaommaviy axborot vositalari, xususan televideniye va radioda faoliyat olib borayotgan afsonaviy, mashhur, el tanigan suxandon hamda boshlovchilar ishtirokida o‘ziga xos uchrashuvlar o‘tkazildi.
🎤Ochiq va samimiy o‘tgan muloqotlar chog‘ida ommaviy axborot vositalarining roli, ularning yoshlar hayotiga ta’siri hamda zamonaviy media sohasidagi yangiliklar muhokama qilindi. Tadbir ishtirokchilari o‘z tajribalari va fikr-mulohazalari bilan bo‘lishib, yosh jurnalistlar hamda media sohasiga qiziquvchilar uchun foydali maslahatlar berdilar.
📹Uchrashuvlarning qaynoq jarayonlari videoda.
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
🌎“Butunjahon yoshlar festivali” doirasida uchrashuvlar davom etmoqda
Kuni kecha, Yoshlar ijod saroyidaommaviy axborot vositalari, xususan televideniye va radioda faoliyat olib borayotgan afsonaviy, mashhur, el tanigan suxandon hamda boshlovchilar ishtirokida o‘ziga xos uchrashuvlar o‘tkazildi.
🎤Ochiq va samimiy o‘tgan muloqotlar chog‘ida ommaviy axborot vositalarining roli, ularning yoshlar hayotiga ta’siri hamda zamonaviy media sohasidagi yangiliklar muhokama qilindi. Tadbir ishtirokchilari o‘z tajribalari va fikr-mulohazalari bilan bo‘lishib, yosh jurnalistlar hamda media sohasiga qiziquvchilar uchun foydali maslahatlar berdilar.
📹Uchrashuvlarning qaynoq jarayonlari videoda.
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
Blogerlar va jurnalistlar yoshlar bilan birga.
Yoshlar ijod saroyida mashhur blogerlar va jurnalistlar bilan bo’lgan uchrashuv yoshlar uchun ulkan ilhom manbai bo’ldi desak adashmaymiz.
🌎Butunjahon yoshlar festivali doirasida bo’lib o’tgan uchrashuvda ishtirokchilar jonli muloqotda bo’lib, ularning hayotiy hikoyalari, muvaffaqiyat sirlari va qiziqarli ma’lumotlari bilan tanishishdi. Tadbir davomida yoshlar o’zlarini qiziqtirgan savollarni berib, sohaning eng zo’r mutaxassislaridan qimmatli maslahatlar olishdi.
🎤Uchrashuvda har bir ishtirokchi o’zining yangi g’oyalarini amalga oshirish uchun kuchli ilhom va o’ziga ishonch oldi.
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
Mamlakatimizning yetakchi suxandon va jurnalistlari bilan uchrashuv!
❓ Jurnalistika olami va suxandonlik kasbiga qiziqishingiz balandmi?
🌎“Butunjahon Yoshlar Festivali-2024” doirasida sizni jurnalistika va televideniye olamining mutaxassislari bilan uchrashishingiz mumkin bo'lgan noyob tadbirga taklif qilamiz.
📅Sana: 28-iyun
⏰Vaqt: 16:30- 17:00
📍Manzil: Yoshlar Ijod Saroyi2-zal (2-qavat)
📝Ishtirok etish uchun @yoshlaruchrashuvibot orqali ro‘yxatdan o‘ting
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
Yurtimizning eng ilg’or telekanallari taqdimoti!
🌎”Butunjahon Yoshlar Festivali 2024 “ da eng yaxshi telekanallar taqdimotlari bo’lib o’tadi. Siz esa eng so‘nggi yangiliklar haqida bilib olishingiz va sevimli dasturlaringiz ortidagi ijodiy guruhlar bilan tanishishingiz mumkin.
🧾Uchrashuvlar 28-iyun kuni Yoshlar ijod saroyining 2-zali(2-qavat) dabo‘lib o‘tadi.
Soha yetakchilari bilan muloqot qilish va televideniya sohasidagi ilg‘or ishlanmalarni o‘rganish uchun noyob imkoniyatni qo‘ldan boy bermang!
📝Ishtirok etish@yoshlaruchrashuvibotorqali ro‘yxatdan o‘ting
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
🌎”Butunjahon Yoshlar Festivali-2024” da kundalik yo’l hamrohingizni qaytadan kashf eting!
Radio bizning kundalik sayohatlarimizda sodiq hamrohimiz bo'lib, yangiliklar, musiqa va qiziqarli hikoyalarni yetkazadi. Siz sevgan har bir stansiyaning o'ziga xos hikoyasi va kundalik qatnovingizni qiziqarli va ma'lumotli qilish uchun tinimsiz mehnat qiladigan maxsus jamoalar mavjud.
Bu tadbir sizning ular bilan uchrashish, maftunkor radio tarixi va vaqt sinovdan qanday muvaffaqiyat bilan chiqib kelayotgani haqida ajoyib hikoyalarini tinglash imkoniyatingizdir.
🧾Uchrashuv 28-iyun kuni 10:00da Yoshlar ijod saroyining Orkestr zalidabo‘lib o‘tadi.
🎙Radioning abadiy jozibasini his etish uchun bizga qo’shiling!
📝Ishtirok etish uchun @yoshlaruchrashuvibot orqali ro‘yxatdan o‘ting
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
🌎Mashhur blogerlar va jurnalistlar Butunjahon yoshlar festivalida!
Blogerlik va jurnalistika olamiga qiziqasizmi? Unda bu sizning imkoniyatingiz! TOP blogerlar va jurnalistlar o‘z hikoyalari va muvaffaqiyat sirlari bilan o‘rtoqlashadigan tadbirda bizga qo‘shiling.
🧾Uchrashuv 27-iyun kuni soat 16:00 da Yoshlar ijod saroyining 1-zal,orkestr zalida bo‘lib o‘tadi.
Sevimli blogerlaringizga o’zingizni qiziqtirgan savollarni berish va o’z sohasining mutaxassislaridan qimmatli fikrlarni olish imkoniyatini qo’ldan boy bermang.
📝Ishtirok etish@yoshlaruchrashuvibotorqali ro‘yxatdan o‘ting
#YoshlarKuni#YouthDay
Bizning sahifalarimiz:
🕊Telegram📱Instagram📱Facebook📺YouTube
Jahon futboli yulduzlari Dida, Serjinyo, Kristian Panuchchi va Zakkardolar Toshkentga yetib kelishdi
🌎“Butunjahon yoshlar festivali” doirasida uzoq kutilgan uchrashuv bugun 15:00 da Yoshlar ijod saroyida boshlanadi.
#YoshlarKuni#YouthDay
Ijtimoiy tarmoqlarni kuzatib boring:
🕊Telegram📱Facebook📱Instagram