Установить свойства виджета в 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
#Xatirchi
#Ayollar
Oʻzbekiston Ekologik partiyasi Xatirchi tuman Kengashi raisi hamda partiyadan saylangan Xalq deputatlari tuman Kengashi deputati tomonidan Galabek mahalla fuqarolar yig‘inida xotin-qizlar ishtirokida davra suhbati o‘tkazildi.
Davra suhbatida mahalladagi faol xotin-qizlar va yosh onalar ishtirok etdi. Uchrashuv davomida ayollarning ekologik madaniyatni shakllantirishdagi o‘rni, oilada va jamiyatda sog‘lom turmush tarzini qaror toptirishdagi mas’uliyati haqida atroflicha fikr almashildi.
Zero, ayol – oilaning tarbiyachisi, kelajak avlodga ekologik ong va mas’uliyatni singdiruvchi asosiy kuchdir.
Shuningdek, davra suhbati davomida ayollar salomatligini muhofaza qilish, toza ekologik muhitning inson salomatligiga ta’siri, turli kasalliklarning oldini olishda gigiyena va ekologik tozalikka rioya etishning ahamiyati haqida ham foydali ma’lumotlar berildi.
Ekopartiya Navoiy viloyati Kengashi matbuot xizmati
👇👇Kanalimizga obuna bo‘ling
https://t.me/navoiyekopartiya
👍👍👍👍👍👍
📍 Hudud: #Toshkent
🚹#Ayollar
🆔 Yosh: 18-28
💲Oylik: 3.000.000 9.000.000
☎️ Tel: +998770811999
+998996475442
+998770811999
📣ISHGA TAKLIF QILAMIZ 📣
FAQAT AYOL QIZLAR UCHUN
Agarda siz kirishimli, xushmuomala nutqingiz ravon va o‘z ishida masʼuliyatli bo‘lsangiz, biz sizni jamoamizga taklif etamiz!
⚠️TALABLAR:
-yosh-18-28 gacha
⏰ Ish vaqti:
09:00 - 14:00
09:00 - 17:00
09:00 - 21:00
14:00 - 21:00
17:00-21:00
📍Manzil: Toshkent shaxri
📍Olmazor tumani Farobiy ko'cha 364
📍Milano Boutique roparasida
🚊 Metro: Beruniy
🔔 SHAROITLAR:
✔️-qulay sharoit
✔️-yangi ishchilarga ish o’rgatilinadi;
✔️-eng faol xodimlarga qo’shimcha bonus pul mablag’lari qo’shib beriladi;
✔️- oylik maosh qo’lingizga tegadigani;
💲-3 000 000 dan 9 000 000 gacha;
(Sotuvingiz hisobga olinadi)
📞Kontakt :
+998770811999
+998996475442
+998336761999
📱Telegram
@Booknomy_beruniy
@Mahmudovn_a
@AXE_1999
✅Tanishlarga joʻnating ↗️
👍👍👍👍👍👍
📍 Hudud: #Toshkent
🚹#Ayollar
🆔 Yosh: 18-28
💲Oylik: 3.000.000 9.000.000
☎️ Tel: +998770811999
+998996475442
+998770811999
📣ISHGA TAKLIF QILAMIZ 📣
FAQAT AYOL QIZLAR UCHUN
Agarda siz kirishimli, xushmuomala nutqingiz ravon va o‘z ishida masʼuliyatli bo‘lsangiz, biz sizni jamoamizga taklif etamiz!
⚠️TALABLAR:
-yosh-18-28 gacha
⏰ Ish vaqti:
09:00 - 14:00
09:00 - 17:00
09:00 - 21:00
14:00 - 21:00
17:00-21:00
📍Manzil: Toshkent shaxri
📍Olmazor tumani Farobiy ko'cha 364
📍Milano Boutique roparasida
🚊 Metro: Beruniy
🔔 SHAROITLAR:
✔️-qulay sharoit
✔️-yangi ishchilarga ish o’rgatilinadi;
✔️-eng faol xodimlarga qo’shimcha bonus pul mablag’lari qo’shib beriladi;
✔️- oylik maosh qo’lingizga tegadigani;
💲-3 000 000 dan 9 000 000 gacha;
(Sotuvingiz hisobga olinadi)
📞Kontakt :
+998770811999
+998996475442
+998336761999
📱Telegram
@Booknomy_beruniy
@Mahmudovn_a
@AXE_1999
✅Tanishlarga joʻnating ↗️
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X
👍👍👍👍👍👍
📍 Hudud: #Andijon
🚹#Ayollar#Erkaklar
🆔 Yosh: 18-30
💲Oylik: 2.000.000 - 15.000.000
🗓️ Ish kuni: 6/1 Dushanbadan Shanbagacha
⏰ Ish Vaqti: 09:00 dan 18:00 gacha
💵 Insan Biznes Akademiyasida sotuv menejerlari oyiga 2 millon soʻmdan 15 million soʻmgacha ishlab topishadi.
🧑🏻🎓 Sirtqi ta'limda o'qiydigan talabalarni ham qabul qilamiz.(Eslatma kunduzgi ta'limdagilar ish vaqti o'qishiga halal berib qolmasligi maqsadida ularni ishga ololmaymiz)
🦾 Agar siz ham oʻzingizga ishonsangiz
🪪 Quyidagi hususiyatlar sizda boʻlsa, demak siz biz bilan ishlay olasiz:
– 18‐30 yoshdagi qiz va yigitlar
– Insonlar bilan kirishimlilik;
– Erkin muloqot qila olish;
– Sotuv sohasida tajriba (boʻlmasa oʻzimiz tez oʻrgatamiz)
🔔Biz sizni qanday qadrlaymiz?
🏢Qulay va zamonaviy ofis sharoitlari;
🧑🏻🎓Doimiy o‘sish va rivojlanish imkoniyatlari;
💵 O‘sib boruvchi maosh;
📍Ish joyi: Andijon eski shahar, Devonaboy masjidi, Eshonota majmuasi
👉Ro'yxatdan o'tish uchun bosing!👈
👍👍👍👍👍👍
📍 Hudud: #Andijon
🚹#Ayollar#Erkaklar
🆔 Yosh: 18-30
💲Oylik: 2.000.000 - 15.000.000
💵 Insan Biznes Akademiyasida sotuv menejerlari oyiga 2 millon soʻmdan 15 million soʻmgacha ishlab topishadi.
🦾 Agar siz ham oʻzingizga ishonsangiz
🪪 Quyidagi hususiyatlar sizda boʻlsa, demak siz biz bilan ishlay olasiz:
– 18‐30 yoshdagi qiz va yigitlar
– Insonlar bilan kirishimlilik;
– Erkin muloqot qila olish;
– Sotuv sohasida tajriba (boʻlmasa oʻzimiz tez oʻrgatamiz)
🔔Biz sizni qanday qadrlaymiz?
🏢Qulay va zamonaviy ofis sharoitlari;
🧑🏻🎓Doimiy o‘sish va rivojlanish imkoniyatlari;
💵 O‘sib boruvchi maosh;
📍Ish joyi: Andijon eski shahar, Devonaboy masjidi, Eshonota majmuasi
👉Ro'yxatdan o'tish uchun bosing!👈
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev ayollar va bolalar huquqlarining himoyasini yanada kuchaytirish, ularga nisbatan tazyiq va zoʻravonlikning oldini olish yuzasidan takliflar hamda yangi tashabbuslar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с предложениями и новыми инициативами, направленными на дальнейшее усиление защиты прав женщин и детей, а также предупреждение случаев притеснения и насилия в отношении них.
#Mirziyoyev#taqdimot#ayollar#bolalar
Prezident.uz|Facebook|Instagram|YouTube|X