Установить свойства виджета в 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
Davlatimiz rahbari “Yangi Oʻzbekiston” universitetining zamonaviy kampusi qurilishi bilan tanishdi
✅Taqdimotda universitet kampusi 3 bosqichda qurilib, birinchi bosqich 2026-yilda bitkazilishi va foydalanishga topshirilishi ta’kidlandi.
🏛️Universitet umumiy 50 gektar maydonni egallab, unda jami 16 ta bino barpo etiladi.
Bundan tashqari talabalar uchun 2 ming oʻrinli talabalar yotoqxonasi va professor oʻqituvchilar uchun 286 ta xonadondan iborat 4 ta turar joy qurilishi rejalashtirilgan.
💥Kampus Markaziy Osiyo mintaqasidagi eng yirik va zamonaviy ta'lim maskanlaridan biri sifatida qad rostlaydi.
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖
#yangikampus#YangiToshkent
⬇️Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
Davlatimiz rahbari Yangi Toshkent shahrini barpo etish direksiyasiga tashrif buyurib, yirik qurilish loyihalari taqdimoti bilan tanishdi.
—
Глава нашего государства посетил Дирекцию по строительству Нового Ташкента и ознакомился с презентацией крупных строительных проектов.
#Mirziyoyev#tanishuv#YangiToshkent#taqdimot
Prezident.uz|Facebook|Instagram|YouTube|X
Davlatimiz rahbari Yangi Toshkent shahrini barpo etish direksiyasiga tashrif buyurib, yirik qurilish loyihalari taqdimoti bilan tanishdi.
—
Глава нашего государства посетил Дирекцию по строительству Нового Ташкента и ознакомился с презентацией крупных строительных проектов.
#Mirziyoyev#tanishuv#YangiToshkent#taqdimot
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Yangi Toshkentdagi “Buyuk Ipak yoʻli” loyihasi hamda muzeylar sohasidagi rejalar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с проектом «Великий Шелковый путь» в Новом Ташкенте и планами в музейной сфере.
#Mirziyoyev#taqdimot#YangiToshkent#muzeylar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Chirchiq daryosi ustidan yangi ko‘prik hamda metro bekati bilan birlashtirilgan avtoturargoh barpo etish ishlarini ko‘zdan kechirdi.
—
Президент Шавкат Мирзиёев осмотрел строительство нового моста через реку Чирчик и автостоянки, совмещенной со станцией метро.
#Mirziyoyev#tanishuv#YangiToshkent#transport
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident tashrifi: Yangi O'zbekiston Universiteti yangi bosqichga qadam qo‘ymoqda
Bugun O‘zbekiston Respublikasi Prezidenti Shavkat MirziyoyevYangi O‘zbekiston universitetining Yangi Toshkent hududida barpo etilayotgan kampusi qurilish jarayoni bilan tanishdilar.
💡Davlatimiz rahbari mazkur kampus va unda yo‘lga qo‘yiladigan ta’lim jarayonlari mamlakatimizdagi barcha oliy ta’lim muassasalari uchun namuna bo‘lishi va 2026–2027 o‘quv yili aynan ushbu ushbu kampusda boshlanishi lozimligini alohida ta’kidladilar.
Ushbu kampus nafaqat O‘zbekistonda, balki mintaqadagi eng yirik universitet majmualaridan biri bo‘lishi rejalashtirilgan. Birinchi bosqichda bu yerda:
👍Muhandislik va Iqtisodiyot va boshqaruv maktabi o‘quv binolari,
👍Zamonaviy ilmiy laboratoriyalar,
👍Sun’iy intellektga ixtisoslashgan yirik data markaz,
👍hamda mintaqa miqyosida nufuzli xalqaro laboratoriyalar faoliyat boshlaydi.
🎓Ta’lim jarayonlari universitetning strategik hamkorlari — Massachusetts Institute of Technology va Technical University of Munich bilan hamkorlikda, jahon standartlariga mos tarzda tashkil etiladi.
✨Yangi O‘zbekiston universiteti ushbu kampus orqali mamlakatimiz iqtisodiyotini yangi texnologik bosqichga olib chiqadigan, barcha sohalar uchun yuqori malakali mutaxassislar tayyorlaydigan yetakchi ilmiy-ta’lim markaziga aylanishni maqsad qilgan.
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖
#YangiKampus#YangiToshkent#Innovatsiya
⬇️ Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
Prezident Shavkat Mirziyoyev Yangi Toshkent shahrida barpo etilayotgan favvora majmuasi loyihasi bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с проектом фонтанного комплекса, создаваемым в Новом Ташкенте.
#Mirziyoyev#tanishuv#YangiToshkent#favvora
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Yangi Toshkentda barpo etilayotgan yirik sport inshooti – zamonaviy futbol stadionining qurilish jarayonini koʻzdan kechirdi.
—
Президент Шавкат Мирзиёев ознакомился с ходом строительства крупного спортивного сооружения – современного футбольного стадиона в Новом Ташкенте.
#Mirziyoyev#tanishuv#YangiToshkent#stadion
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Yangi Toshkentdagi “Buyuk Ipak yoʻli” loyihasi hamda muzeylar sohasidagi rejalar bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с проектом «Великий Шелковый путь» в Новом Ташкенте и планами в музейной сфере.
#Mirziyoyev#taqdimot#YangiToshkent#muzeylar
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Yangi Toshkentda barpo etilayotgan yirik sport inshooti – zamonaviy futbol stadionining qurilish jarayonini koʻzdan kechirdi.
—
Президент Шавкат Мирзиёев ознакомился с ходом строительства крупного спортивного сооружения – современного футбольного сооружения в Новом Ташкенте.
#Mirziyoyev#tanishuv#YangiToshkent#stadion
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Yangi Toshkent hududida trigeneratsiya stansiyasi va birinchi nimstansiya qurilishi bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился со строительством тригенерационной станции и первой подстанции на территории Нового Ташкента.
#Mirziyoyev#tanishuv#YangiToshkent#energetika
Prezident.uz|Facebook|Instagram|YouTube|X
Prezident Shavkat Mirziyoyev Yangi Toshkent shahrida barpo etilayotgan favvora majmuasi loyihasi bilan tanishdi.
—
Президент Шавкат Мирзиёев ознакомился с проектом фонтанного комплекса, создаваемым в Новом Ташкенте.
#Mirziyoyev#tanishuv#YangiToshkent#favvora
Prezident.uz|Facebook|Instagram|YouTube|X