Установить свойства виджета в 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
🚘 Rossiyada 1990-yilgi “Zaporojets” 100 km yurilgan holatda sotuvda!
🇷🇺 Rossiyada noyob ZAZ-968M modeli sotuvga qo‘yildi: u 35 yil davomida garajda saqlanib, atigi 100 km yurgan. Avtomobilning zavod bo‘yoqlari, rezina qismlari va tormoz kolodkalari asl holatda saqlangan.
🔧 Texnik xususiyatlar:
Dvigatel: 1.2 litrli, 41 ot kuchiga ega, havo bilan sovutiladigan V4
Transmissiya: 4 pog‘onali mexanik uzatma
💸 Narxi: 280 000 rubl (taxminan $3,450)
Bu modelning havo bilan sovutiladigan dvigateli Porsche 911 bilan o‘xshashlikka ega, ammo “Zaporojets” ancha ixcham.
👉#avto | Birinchi raqamli IT-Blog
🚗 Rossiyada GAZ va Bugatti aralashmasi – Volgatti!
🛠 Ustalar guruhi klassik GAZ-21 "Volga" va zamonaviy Bugatti Chiron dizaynlarini birlashtirib, yangi superkar yaratdi. Modelning nomi ham ijodiy: Volgatti!
ℹ️ Texnik jihatlar:
Platforma: BMW 6 Series (E63) asosida
Dvigatel: 4.4L V8, 333 HP
G‘ildiraklar: oldi — 20", orqa — 21"
Spoiler: 100 km/soatda avtomatik ko‘tariladi
🪄 Tashqi ko‘rinish:
Old oynasi tor, hot-rod uslubida
Eshiklar: alyuminiy, bezramkali
Kapotda GAZ-21 dan qolgan olmaxon haykali
💵Unga $120,000 va 3 yil mehnat ketgan. Hozircha rasmiy ro‘yxatdan o‘tkazilmagan. Ammo cheklangan seriyali ishlab chiqarish ko‘zda tutilmoqda.
👉#avto | Birinchi raqamli IT-Blog
🤦♂️ Xullas, tartibsiz bo'lib ketgan transport sohamizda yana bir kulgili ish...
⚠️ "Road24" o'rniga davlatning rasmiy "Safe Road YHXX" ilovasi chiqdi deyishdi. Tekshirdim, ro'yxatdan ham o'tmasdan qotib qoldi.
😏 Tuppa-tuzuk ishlab turgan "Road24" ilovasini ham ko'ra olishmadi. Erta-indin yangi tizim abonent to'lovi bilan ishlaydigan bo'lib ketsa ham ajablanmayman (unday bo'lmasin ham ishqilib).
➡️#avto | Birinchi raqamli IT-Blog
🇬🇧 Britaniyada dunyodagi eng yengil elektrokarlar yaratildi
🏎 Tesla’ning sobiq muhandislari o‘z ishlab chiqarishini yo‘lga qo‘yib, Longbow Speedster va Roadster modelini taqdim etishdi. Bu mashinalarning og‘irligi atigi 895 va 995 kg.
⚠️ Yengil tezkor avtomobillar 3,5 soniyada soatiga 100 km tezlikka chiqadi va Tesla’ning bevosita raqobatchisi hisoblanadi.
➡️#avto | Birinchi raqamli IT-Blog
🚗 Rossiyaning "Atom" elektromobilidagi rul ichidagi ekran: nima uchun kerak?
ℹ️ "Atom" elektromobilining ruli ichiga o‘rnatilgan 7 dyuymli sensorli ekran orqali foydalanuvchilar oynalar va o‘rindiqlarni sozlash, multimedia va iqlim nazoratini boshqarish, shuningdek, haydovchiga yordamchi tizimlardan foydalanish imkoniyatiga ega bo‘ladilar.
⚠️ Ekranning xavfsizlik rejimi harakat paytida avtomatik ravishda faollashadi, bunda matritsa qorayadi, lekin sensorli funksiyalar ishlashda davom etadi. Bu haydovchining diqqatini chalg‘itmaslik uchun mo‘ljallangan. Bundan tashqari, tasodifiy tegishlarni oldini olish uchun maxsus texnologiyalar joriy etilgan.
⚙️AR HUD (Augmented Reality Head-up Display) texnologiyasi yordamida old oynaga keng formatda (13:6) ma’lumotlar proyeksiyasi amalga oshiriladi, bu esa haydovchiga yo‘l harakati haqida zarur ma’lumotlarni ko‘rishga yordam beradi. Yorqinlik darajasi atrof-muhit yoritilishiga qarab avtomatik ravishda moslanadi.
➡️#avto | Birinchi raqamli IT-Blog
📉 Volkswagen, BMW, Audi va Mercedes-Benz daromadlari keskin kamaymoqda
🚘 Volkswagen uchinchi chorakda daromadining 64% ga pasayishini e’lon qildi, bu esa 1,58 milliard yevro darajaga tushib ketdi. Kompaniya Xitoydagi savdo hajmining pasayishi va restrukturizatsiya xarajatlarini asosiy sabab sifatida ko‘rsatmoqda. Uchta yevropa zavodining yopilishi va o‘n minglab ish o‘rinlari qisqarishi kutilmoqda.
🚘Audi daromadi esa 91% ga qisqarib, 106 million yevro darajaga tushib qoldi. Savdo hajmi Yevropa, AQSh va Xitoy bozorlarida keskin pasaygan. Bryusseldagi zavod yopilishi kutilmoqda, bu 3000 ishchiga ta’sir qilishi mumkin.
🚘 BMW daromadida 84% ga, Mercedes-Benz esa sof foydasida 54% ga pasayish kuzatildi. Ushbu kompaniyalar ham ishlab chiqarishni optimallashtirish choralarini ko‘rib chiqmoqda.
➡️#avto | Birinchi raqamli IT-Blog
🚘Jaguar'dan yaguarsiz logotip
ℹ️ Jaguar kompaniyasi elektromobillar davriga moslashish maqsadida o‘z logotipini yangiladi. Yangi logotipda "JaGUar" yozuvi uchta katta harf bilan ajralib turadi. Shuningdek, oltin rangli halqa ichida "J" va "r" harflari joylashgan yangi monogramma ham taqdim etildi. Kompaniya "Leaper" nomi bilan tanilgan sakrayotgan "mushukcha" tasvirini ham yangiladi. Ushbu o‘zgarishlar brendning an’anaviy qadriyatlarini saqlagan holda, zamonaviy auditoriyaga moslashishga qaratilgan. Yangi logotipli avtomobillarni 2026-yilda ko‘rishimiz mumkin.
👀 Sizga yoqdimi?
➡️#avto | Birinchi raqamli IT-Blog
🚗Nissan 9 000 xodimini ishdan bo‘shatadi
ℹ️Nissan kompaniyasi AQSh va Xitoy bozorlarida avtomobil savdosi keskin kamaygani tufayli 9 000 xodimini ishdan bo‘shatishni rejalashtirmoqda.
📉 Shuningdek, kompaniya ishlab chiqarishni 20% ga qisqartirishni va yillik foyda prognozini 70% ga kamaytirishni maqsad qilgan. Nissan rahbariyati kompaniyaning gibrid avtomobillar bozoridagi sust rivojlanishini tan olib, bu yo‘nalishda raqobatchilardan ortda qolganini e’tirof etdi.
➡️#avto | Birinchi raqamli IT-Blog
🚘 Audi logotipidan voz kechdi(mi?!)
ℹ️ Aytishlaricha, Volkswagen Group konserniga tegishli Audining Xitoydagi yangi avtomobillari siz rasmda ko'rib turgan yozuvli logotip bilan chiqadi va aylanalardan foydalanilmaydi. Lekin, dunyo bo'ylab ishlab chiqariladigan va sotiladigan mashinalarida logotipi bo'ladi.
🚘 Aytgancha, rasmdagi konseptual shou-kar AUDI E modelidir. U 2025-yildan boshlab Xitoyda ishlab chiqariladi va 800 voltli yangicha arxitekturadagi elektromobil bo'ladi. Yoqdimi?
➡️#avto | Birinchi raqamli IT-Blog
🏎 O'ta yangilangan va tanib bo'lmas holatga kelgan Chevrolet Cobalt Midnight ekan...
🤷♂️ Yangi diska, sal qoraroq fara va oynalardan boshqa (oshiriladigan narxning xidi ham bor orada) nimadir ko'rmadim. Xo'sh, innovatsiya sizga yoqdimi?
Ma'lumot uchun, Ilon tog'amizning Marsga uchiriladigan raketasining sinovlari muvaffaqiyatli o'tdi.
➡️#avto | Birinchi raqamli IT-Blog
😁Nilufar ismli mashinaga nima deysiz?
ℹ️ Rossiyalik avtomobillar dizayneri Aleksandr Selipanov Nilu nomli mashinaning dizaynini ishlab chiqdi. U 6.5 litrli 1000 ot kuchiga ega V12 dvigatelga ega bo'ladi.
🚘 Kompaniya xuddi shunday ko'rinishdagi 69 ta mashinani ishlab chiqarmoqchi, undan 54 tasini ko'chalarda uchratib qolishingiz mumkin ekan. Qolgani "uyo-buyoda" tursa kerakda.
➡️#avto | Birinchi raqamli IT-Blog