Установить свойства виджета в 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
#elon
Har xil turdagi rasta (vitrina) muzlatkichlar sotiladi
Yetkazib berish xizmati mavjud
98 700 60 80
90 729 01 93
✅Telegram
📱Instagram
✅Facebook
✅Youtube
🎁Dilnomalar
🎥📱ITV
🎥📺TVCOM
🎥✅Telegram
🎥🎬Cinerama
#Elon
Birozdan so'ng, soat 11:00da Oliy Majlis Qonunchilik palatasining navbatdagi majlisi boshlanadi. Majlisni Qonunchilik palatasining rasmiy veb-saytiorqali to‘g‘ridan-to‘g‘ri kuzatibborishingiz mumkin.
✅Telegram|✅Facebook | 🌐Instagram |🌐 Web site | 📹You Tube
#Elon
Birozdan so'ng, soat 11:00da Oliy Majlis Qonunchilik palatasining navbatdagi majlisi boshlanadi. Majlisni Qonunchilik palatasining rasmiy veb-saytiorqali to‘g‘ridan-to‘g‘ri kuzatibborishingiz mumkin.
✅Telegram|
✅Facebook |
🌐Instagram |
🌐 Web site |
📹You Tube
#Elon
Birozdan so'ng, soat 11:00da Oliy Majlis Qonunchilik palatasining navbatdagi majlisi boshlanadi. Majlisni Qonunchilik palatasining rasmiy veb-saytiorqali to‘g‘ridan-to‘g‘ri kuzatibborishingiz mumkin.
✅Telegram|
✅Facebook |
🌐Instagram |
🌐 Web site |
📹You Tube
#Elon
Birozdan so'ng, soat 11:00da Oliy Majlis Qonunchilik palatasining navbatdagi majlisi boshlanadi. Majlisni Qonunchilik palatasining rasmiy veb-saytiorqali to‘g‘ridan-to‘g‘ri kuzatibborishingiz mumkin.
✅Telegram|
✅Facebook |
🌐Instagram |
🌐 Web site |
📹You Tube
#Elon
Birozdan so'ng, soat 11:00 da Oliy Majlis Qonunchilik palatasining navbatdagi majlisi boshlanadi. Majlis Qonunchilik palatasining rasmiy veb-sayti hamdayoutubedagi kanali orqali to‘g‘ridan-to‘g‘ri kuzatib borishingiz mumkin.
✅Telegram|
✅Facebook |
🌐Instagram |
🌐 Web site |
📹You Tube
#Elon
Birozdan so'ng, soat 11:00da Oliy Majlis Qonunchilik palatasining navbatdagi majlisi boshlanadi. Majlisni Qonunchilik palatasining rasmiy veb-saytiorqali to‘g‘ridan-to‘g‘ri kuzatibborishingiz mumkin.
✅Telegram|✅Facebook | 🌐Instagram |🌐 Web site | 📹You Tube
#elon
Hurmatli soliq toʻlovchilar!
“Sharq Telekom” internet provayderi servislarida nosozliklar kuzatilayotganligi sababli soliq organlarining ayrim (ijara.soliq.uz, my3.soliq.uz, tekshiruv.soliq.uz, e-imzo.soliq.uz) tizimlari faoliyatida vaqtinchalik uzilishlar bo‘lishi mumkin.
Keltirilgan noqulayliklar uchun oldindan uzr soʻraymiz.
Тelegram|Facebook|Youtube|Instagram|X|Threads
❗️#ELON
- "SHERDOR MEDIA" ga Mobilografiyadan xabari bor Kantentlar, umuman olganda vedio ishlari bo'yicha bo'ladi va trenirofkalarda ham qatnashishi mumkin, o'yini yaxshi bo'lsa o'yinlarda ham tushadi...!
Kim qiziqsa Managerga yozishingiz mumkin, kamandaga qo'shilishni kichik bir yo'li bu, Batafsil yana gaplashamiz..!
👨💻 Manager: @sherdor_media
📍 Official: @fc_sherdor_media
😎
😎
😎
😎
😎
😎
😎
#elon
🌟Bayramda ham “Mittivoy” siz bilan!🌟
Aziz ota-onalar! Ramazon hayiti va Navro‘z bayramlari munosabati bilan e’lon qilingan dam olish kunlarida biz dam olmaymiz! 🤩
Farzandlaringizga bayram shodligini ulashishingiz uchun 20-21-mart kunlari ham barcha filiallarimiz odatdagidek xizmatingizda bo‘ladi
📌Kitoblarga -50% chegirma kerakmi?
📍Manzilimiz📍Lokatsiya
🕘 9:00 dan 23:00 gacha
☎️ +998905116466
💵1% KESHBEK
📱Telegram📱Instagram📱YouTube📑Ishga kirish
#Elon
Chiqindilarni boshqarish va sirkulyar iqtisodiyotni rivojlantirish agentligining “1205” qisqa ishonch telefoni hozirda vaqtinchalik texnik sabablarga ko‘ra ishlamayotgani haqida agentlikning rasmiy sahifasida ma’lum qilindi.
Bildirilishicha, ushbu holat agentlikning yangi manzilga ko‘chishi bilan bog‘liq bo‘lib, ayni paytda aloqa tizimlarini qayta sozlash hamda zarur texnik ishlar amalga oshirilmoqda.
Mutaxassislar tomonidan texnik jarayonlar yakunlangach, call-center faoliyati tez orada to‘liq tiklanishi va bu haqda jamoatchilikka rasmiy ravishda qo‘shimcha ma’lumot berilishi ta’kidlandi.
Ma’lumot uchun, “1205” qisqa raqami respublika bo‘ylab fuqarolardan chiqindilar bilan bog‘liq murojaatlarni qabul qilish, mavjud muammolarni tezkor hal etish hamda ularni tegishli xizmatlarga yo‘naltirish maqsadida faoliyat yuritib kelmoqda.
_____
На официальной странице Агентства по управлению отходами и развитию циркулярной экономики сообщается, что короткий номер доверия «1205» в настоящее время временно не функционирует по техническим причинам.
Отмечается, что данная ситуация связана с переездом агентства на новый адрес. В настоящее время проводятся работы по перенастройке систем связи и выполнению необходимых технических процессов.
Подчеркивается, что после завершения всех технических процедур деятельность call-центра будет в ближайшее время полностью восстановлена, а общественность будет дополнительно официально проинформирована об этом.
Напомним, что короткий номер «1205» функционирует по всей республике для приема обращений граждан, связанных с отходами, оперативного решения возникающих проблем и их направления в соответствующие службы.
Kanalimizga obuna bo'ling: @wasteuzgroup
📷Instagram | 🕊Telegram | 📱Facebook |Web-Sayt
#Elon
⚡️3-dekabr Furqat filialimizda bo’lib o’tuvchi, IELTS GRAND Mock imtihoniga talabgorlar hali ham ro’yxatdan o’tayotganligi sababli 10-dekabr sanasiga ko’chirildi.
Agarda siz ham ro’yxatdan o’tmagan bo’lsangiz hoziroq ro’yxatdan o’ting👇🏻
📨Ro’yxatdan o’tish uchun
☎️ 55-500-90-10