Установить свойства виджета в 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
#ustoz
“Ustoz — otangdan ulug‘”. Bu ustozlarga nisbatan aytilgan tashbehdir. Ustozi yo‘qning ustozi shaytondir. Jamiyatda bo‘layotgan voqealar uydagi tarbiyaning oyinasi.
“Ustoz” loyihasining navbatdagi mehmoni O'zbekiston milliy media birlashmasi Boshqaruv raisi hamda O‘zbekiston jurnalistika va ommaviy kommunikatsiyalar universiteti rektori, professor Sherzodxon Qudratxo‘ja bo‘ldi.
@SherzodxonQudratxoja
ФерузаАнгренХДП, [26 сен. 2025 в 10:58]
#Ustoz va murabbiylar kuni#
Oliy Majlis Qonunchilik Palatasi deputati Q.Kasimova, O'zbekiston XDP Ohangaron shahar kengashi raisi G.Kasimova bilan birga "Xonobod" MFYda istiqomat qiluvchi uzoq yillar davomida Ohangaron shahar 2-umumiy o'rta ta'lim maktabida faoliyat yuritib, hozirgi kunda nafaqadagi partiya faoli Sobira opa Botirova xolidan xabar olinib, 1 oktyabr - Ustoz va murabbiylar kuni munosabati bilan Oliy Majlis Qonunchilik Palatasi deputati Q.Kasimova tomonidan esdalik sovg'alari taqdim etildi.
🇺🇿
🇺🇿
🇺🇿 Aziz ustozlar!
Sizlarni bugungi ajoyib bayram bilan samimiy tabriklayman!
Hech shubhasiz, har bir inson o‘z hayotida munosib o‘rnini egallashida, erishgan har bir muvaffaqiyatida Siz, ustoz va murabbiylarning hissangiz beqiyosdir.
Ayniqsa bugungi kunda, Yangi O‘zbekiston taraqqiyoti uchun amalga oshirilayotgan barcha jarayonlarda Sizlarning bolalarimizga berayotgan ta’lim va tarbiyangiz ahamiyatini yuksak baholaymiz.
Shu sababli davlatimiz tomonidan Sizlarning mehnatingizni qadrlash, o‘z faoliyatingizni samarali amalga oshirishingiz uchun barcha choralar ko‘rilmoqda. Yaqin kelajakda, ular albatta, o‘z natijasini berishiga ishonamiz.
Azizlar! Barchangizga uzoq umr, baxt-saodat, xonadoningizga fayzu-baraka, ezgu ishlaringizga ulkan zafarlar tilayman!
#ustoz
@tanzilanarbaeva
#Ustoz
Ustozga hurmatsizlik, ta’limga bo’lgan e’tiborsizlik halokatga olib keladi.
"Ustoz" loyihasi mehmoni — O‘zbekistonda xizmat ko‘rsatgan artist Matyoqub Matchonov
https://t.me/otabek_khasanov
Seshanba kunigacha Mo'hsen Nomju tarjimayi holi haqida ma'lumotlar beriladi.
Seshanba esa uning eng sara qo'shiqlaridan biri tarjima qilib beriladi.
Sizda ajoyib imkoniyat, Mo'hsen aka Nomjuyevning qo'shiqlarini google orqali izlab ko'ring va o'zingizga yoqqanini@Forstili_amaliy guruhiga #ustoz boshlanmasi (heshtegi) bilan qo'ying.
Tavsiya qilingan qo'shiqlardan biri tarjima uchun tanlanadi.
@Forstili_Mominzoda bilan bo'ling!
#vacancy /#grafikdizayn /#ustoz
Grafik dizayn bo'yicha ustoz (mentor) kerak.
💰Maosh: Suhbat asosida kelishiladi.
Batafsil: https://www.redfox.uz/vacancy/mentor-kerak
Ustozga hurmatsizlik, bevosita otaga, onaga hurmatsizlik bo‘ladi va buni tuzatish juda ham qiyin
“Ustoz” loyihasining navbatdagi mehmoni “Jahon adabiyoti” jurnali bosh muharriri Ahmadjon Meliboyev.
___
Неуважение к наставнику – это неуважение к отцу и матери, и исправить это очень сложно.
Очередной гость проекта «Устоз» – главный редактор журнала «Всемирная литература» Ахмаджон Мелибоев.
#ustoz#baham_ko‘rish#xudbinlik#tasavvur
☺️ Bolalar uchun darsdan keyingi dam olish, aqliy va jismoniy faollik uyg‘unligida boʻldi!
Zuxriddin ustoz bolalarni ikki jamoaga bo‘lib, ijodiy fikrlash va jamoaviy hamkorlikni oshiradigan o‘yin tashkil qildi. Har bir o‘yinchi o‘z navbatida idishchalarni belgilangan shaklga keltirib, keyingisiga joy hozirlab berdi.
🏆 Tezlik, aniqlik va birdamlik — g‘alabaning kaliti!
📈 O‘yin davomida nafaqat kulgi va harakat, balki hamkorlik, navbat kutish va strategik fikrlash kabi ko‘nikmalar rivojlandi.
#TeachForUzbekistan#bolalarfaoliyati#maktab#ustoz
Telegram |Linkedln| Instagram |Youtube
“Ustoz – komillikka eltuvchi nur!”
“Ustoz” loyihasining navbatdagi mehmoni Alisher Navoiy nomidagi Toshkent davlat oʻzbek tili va adabiyoti universiteti rektori, OʻzFA akademigi Shuhrat Sirojiddinov.
__
«Наставник– это свет, направляющий нас к совершенству!»
Очередной гость проекта «Устоз» – Шухрат Сироджиддинов, ректор Ташкентского государственного университета узбекского языка и литературы имени Алишера Навои, академик АН РУз.
#ustoz#qadam#menustozman#mulohaza
🎯“Kim chaqqon?” – matematika darsida raqobat va rivojlanish!
Matematika fani oʻqituvchisi, Hakimjon ustoz o‘quvchilarini qiziqarli oʻyin orqali o‘ylashga, tezkorlikka va e’tiborga o‘rgatmoqda.
🧮 O‘yin davomida kim misol javobini birinchi topib, do‘skadagi sonni ko‘rsatsa – ball oladi! ✋
Bu usul bolalarning aqliy faolligini, raqobat ruhini va hisoblash malakasini oshiradi. 📈
📹 Qashqadaryodagi darsdan jonli lavha!
#maktab#ustoz#TeachforUzbekistan#matematika#interaktivdars