Установить свойства виджета в 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
🇺🇿
🇺🇿
🇺🇿
Hududlardagi ijtimoiy-iqtisodiy rivojlantirish dasturi ijrosi yuzasidan Toshkent viloyatining O‘rtachirchiq, Piskent tumanlarida bo‘ldik.
Tashrifimiz davomida tumanlardagi ishlab chiqarish korxonalari, oilaviy tadbirkorlik faoliyati, Sayhunobod tajribasi asosida amalga oshirilgan ishlar bilan tanishdik.
Aholi bandligini ta'minlash maqsadida tadbirkorlikka jalb etish bo‘yicha hokimiyat-mahalla-bank o‘rtasida uch tomonlama shartnoma tizimi yuzasidan tushunchalar berildi.
Viloyatda xotin-qizlarning ijtimoiy ahvoli, ularni ish bilan ta'minlash, kasb-hunarga o‘qitish, tadbirkorlikka jalb etish masalalari tanqidiy muhokama qilindi. Mutasaddilarga aniq muddatli vazifalar belgilandi.
Mahallalarga, xonadonlarga tashrifimiz chog‘ida mehnatkash yurtdoshlarimiz bilan samimiy suhbatlashdik.
#hududlar
@tanzilanarbaeva
Ўзбекистон Республикаси Президенти Шавкат Мирзиёев ва Россия Федерацияси Президенти Владимир Путин раислигида Ўзбекистон ва Россия ҳудудлари кенгашининг биринчи мажлиси бўлиб ўтди.
—
Под председательством Президента Республики Узбекистан Шавката Мирзиёева и Президента Российской Федерации Владимира Путина состоялось первое заседание Совета регионов Узбекистана и России.
#Mirziyoyev#tashrif#Rossiya#hududlar
Prezident.uz|Facebook|Instagram|YouTube|X
Kadastrga oid murojaatlar uchun ishonch telefonlari
🌟 Davlat kadastrlari palatasi Sirdaryo viloyat boshqarmasi yurtdoshlarimizning kadastrga oid murojaatlarini tinglash maqsadida, hududiy tuman, shahar filiallarining Ishonch telefon raqamlarini e'lon qiladi.
🗣 O‘z hududingizga taaluqli kadastrga oid savollaringiz bo'lsa, soha xodimlari faoliyatida asosli kamchilik va xato kuzatsangiz to‘g‘ridan-to‘g‘ri mutasaddilarga murojaat qilishingiz mumkin.
📱Quyida Davlat kadastrlari palatasi Sirdaryo viloyat boshqarmasining barcha tuman shahar filiallari manzillari va rahbarlarining telefon raqamlari bilan tanishishingiz mumkin:
📱Davlat kadastrlari palatasi Sirdaryo viloyati boshqarmasi:
Manzil: Sirdaryo viloyati, Guliston shahar, I.Karimov ko'chasi 16-uy
Ishonch raqami: +998 (67) 236-50-05
Boshqarma boshlig'i Nishanov Ravshan
Shaxsiy telefon raqami: +998 (70) 010-10-26
Boshqarma boshlig'i o'rinbosari RadjabovBekzod
Shaxsiy telefon raqami: +998 (70) 010-10-34
📱Boyovut tumani:
Manzil: Boyovut tumani, Muqumiy mahallasi Baynalminal ko'chasi 25-uy
Filial rahbari Sherboyev Saidakbar
Shaxsiy telefonraqami: +998 (70) 010-10-93
📱 Guliston tumani:
Manzil: Guliston tumani, Ibrat mahallasi, Sirdaryo ko‘chasi 96-uy
Filial rahbari KenjayevXusan
Shaxsiy telefonraqami: +998 (70) 010-11-25
📱Mirzaobod tumani:
Manzil: Mirzaobod tumani, Navro'z mahallasi, Faroviy ko‘chasi 11-uy
Filial rahbari: Ismoilov Kamolliddin
Shaxsiy telefonraqami: +998 (70) 010-11-28
📱Oqoltin tumani:
Manzil: Oqoltin tumani, Yangi davr mahallasi, Archazor ko‘chasi 26-uy
Filial rahbari: Ismoilov Nodirbek
Shaxsiy telefonraqami: +998 (70) 010-10-92
📱Sardoba tumani:
Manzil: Sardoba tumani, Navruz mahallasi, Istiqlol ko‘chasi 12-uy.
Filial rahbari: Dehqonboyev Abduvahob
Shaxsiy telefonraqami: +998 (70) 010-11-36
📱Sayxunobod tumani:
Manzil: Sayxunobod tumani, Turon mahallasi, Alisher Navoiy shox ko‘chasi 72-uy.
Filial rahbari: Ibodullayev Dodo Subhon
Shaxsiy telefonraqami: +998 (70) 010-11-29
📱Sirdaryo tumani:
Manzil: Sirdaryo tumani, Termiz shahar, Shukrona ko'chasi 12-uy
Filial rahbari: Mukarov Muhammad
Shaxsiy telefonraqami: +998 (70) 010-11-32
📱Xovos tumani:
Manzil: Xovos tumani, Bunyodkor mahallasi, Samarqand ko‘chasi 1-uy.
Filial rahbari: Istamov Dilmurod
Shaxsiy raqami: +998 (70) 010-11-35
📱Shirin shahar:
Manzil: Shirin shahar, Amir Temur mahallasi, Buyuk turon ko'chasi 108-uy
Filial rahbari: Ergashev Jo'rabek
Shaxsiy telefonraqami: +998 (70) 010-11-39
📱Guliston shahar:
Manzil: Guliston shahar, Shodlik mahallasi, Xondamir ko'chasi 1-uy
Filial rahbari: Abdurahmonov Begzod
Shaxsiy telefonraqami: +998 (70) 010-11-37
📱Yangiyer shahar:
Manzil: Yangiyer shahar, Davlatobod mahallasi, A.Navoiy ko'chasi 7-uy
Filial rahbari: Jumanov Ulug'bek
Shaxsiy telefonraqami: +998 (70) 010-11-42
#hududlar#murojaat_uchun
➡️Telegram | Facebook | Instagram
🇺🇿
🇺🇿
🇺🇿 Bugun Toshkent viloyatida Oliy Majlis Senati Kengashining sayyor majlisini o‘tkazdik.
Yig‘ilishda hududlarning ijtimoiy-iqtisodiy rivojlantirish hamda aholiga sifatli ijtimoiy xizmatlar ko‘rsatish dasturlarining Toshkent viloyatidagi ijrosi tanqidiy tahlil qilindi.
Senat ishchi guruhining o‘rganishlariga ko‘ra, hududda so‘ngi yillarda iqtisodiy va kichik sanoat zonalari hamda tadbirkorlik subyektlari soni sezilarli darajada oshgan.
Shu bilan birga, ayrim tumanlarda investitsiyalarni jalb qilish, aholi bandligini taʼminlash borasida yo‘l qo‘yilgan kamchiliklarni bartaraf etishga masʼullarning eʼtibori qaratildi.
Mutasaddi davlat idoralari, hokimliklar oldiga aniq muddatli vazifalar qo‘yildi, ijrosi taʼminlanishida deputatlarning faolligini oshirish bo‘yicha ko‘rsatmalar berildi.
#hududlar#kengash
@tanzilanarbaeva
Prezident Shavkat Mirziyoyev hududlarda jamoat transporti tizimini yanada yaxshilash va bu boradagi ishlarni jadallashtirish yuzasidan taqdimot bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с презентацией по дальнейшему улучшению системы общественного транспорта в регионах и ускорению работы в этом направлении.
#Mirziyoyev#taqdimot#transport#hududlar
Prezident.uz|Facebook|Instagram|YouTube|X