Установить свойства виджета в 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
📢 ADY sərnişin tələbatını təmin etmək məqsədilə 11 və 12 aprel tarixlərində Bakı-Ağstafa-Bakı marşrutu üzrə əlavə qatar reysləri təyin edir.
🫰🏻 Sözügedən reyslərə biletləri 10 faiz endirimlə dəmiryol kassalarından, ADY-nin rəsmi saytından və ya “ADY Mobile” tətbiqindən əldə edə bilərsiniz.
🚆 Qeyd edək ki, bu istiqamətlər üzrə Bakı–Qazax–Bakı marşrutu ilə də gündəlik səfərlər təşkil olunur.
#ady#azərbaycandəmiryolları
⛈️🛤️ ADY ölkə ərazisində müşahidə olunan yağışlı və küləkli hava şəraitinin yarada biləcəyi çətinliklərin aradan qaldırılması üçün müvafiq tədbirlər görür.
🚆 Hazırda qatarlar qrafik üzrə hərəkətini davam etdirir, bütün infrastruktur obyektlərinə fasiləsiz nəzarət edilir.
🛡️ Təhlükəsizliyin təmin edilməsi məqsədilə sürət həddinin endirilməsi səbəbindən bəzi istiqamətlər üzrə qatarların qrafikində qismən kənara çıxma halları ola bilər.
ℹ️ Aramsız külək və yağışın qatarların görünmə məsafəsini və səsinin eşidilməsini məhdudlaşdıra biləcəyini nəzərə alaraq sərnişinlərdən stansiya və platformalarda qatarları gözləyərkən diqqətli olmağı xahiş edirik.
#ady#azərbaycandəmiryolları
🚆✨ Ritmini itirmədən rahat və təhlükəsiz davam edən yollar.
🎶 Düşürsən yadıma
🎼 Emin Sabitoğlu
📝 Vaqif Səmədoğlu
🎤 Flora Kərimova və Mirzə Babayev
#ady#azərbaycandəmiryolları
🌨️ ADY ölkə ərazisində müşahidə olunan qeyri-sabit hava şəraitinə baxmayaraq, yük və sərnişinlərin təhlükəsiz daşınması məqsədilə kompleks nəzarət tədbirləri görür.
🚆Müvafiq marşrutlar üzrə qatarların sürət həddi hava şəraitinə uyğun olaraq tənzimlənir, bütün qatarların qrafik üzrə hərəkəti təmin edilir.
📢 Sərnişinlərimizi platformalarda hərəkət zamanı diqqətli olmağa və dəmiryol xətlərini yalnız nəzərdə tutulmuş keçidlərdən keçməyə çağırırıq.
🤳 Həmçinin 1822 Əlaqə Mərkəzi 24/7 sizin suallarınızı cavablandırmağa hazırdır.
✅ Təhlükəsizlik hər hava şəraitində prioritetimizdir!
#ADY#AzərbaycanDəmirYolları
🚆💙 Gənclərimizin enerjisi və təşəbbüsü ilə hər gün irəliləyirik!
🎉 2 Fevral – Gənclər Günü münasibətilə bütün gəncləri təbrik edirik. Sizin peşəkarlığınız və yaradıcı baxışınız ölkəmizin gələcək uğurlarının təməlidir.
📌 2025-ci ildə ADY gənclərin inkişafına yönəlmiş bir sıra layihələr həyata keçirib:
✅ 14 əmək yarmarkasında yüzlərlə gəncə ADY-də mövcud iş imkanları barədə ətraflı məlumat verilib;
✅ 50 tələbə və yeni məzun yay təcrübə proqramına cəlb edilib, onlardan 14 nəfəri artıq ADY komandasının üzvünə çevrilib;
✅ Gənclər üçün “Açıq qapı” günləri və ekskursiyalar təşkil olunub, dəmir yolu sektorunun ekoloji üstünlükləri və innovativ həlləri təqdim edilib.
Hazırda ADY-nin 14 362 əməkdaşından 3 190 nəfəri, yəni 22,2%-i 35 yaşadək gənclərdir. Bu göstərici gənclərin peşəkar inkişafının ADY üçün prioritet olduğunu bir daha təsdiqləyir.
💙 Gənclərimiz bizim gələcəyimizdir və bu gələcəyi birlikdə qururuq!
#ADY#AzərbaycanDəmirYolları
🇦🇿🇬🇪 AZCON Holding şirkətlərindən olan ADY-nin sədri Rövşən Rüstəmov gürcüstanlı həmkarı Laşa Abaşidze ilə görüşüb.
🚆📊 Görüşdə iki ölkə arasında dəmir yolu sahəsində əməkdaşlığın səviyyəsindən məmnunluq ifadə olunub, yükdaşıma həcmlərinin artırılması, tariflərin və çatdırılma müddətlərinin optimallaşdırılması, Bakı–Tbilisi–Qars dəmir yolu xəttinin inkişafı üzrə görülən işlər müzakirə edilib.
🔗 Daha ətraflı: https://sml.az/ady-georgia-railway
#AzərbaycanDəmirYolları#ADY
🤝🚢 AZCON Holding şirkətlərindən olan ADY-nin sədri Rövşən Rüstəmov Gürcüstanın aparıcı logistika şirkəti olan, Poti Limanında terminal idarəçiliyini həyata keçirən “PACE Group”un və Batumi Dəniz Limanının rəhbərlikləri ilə görüşlər keçirib.
🌍📦 Görüşlərdə iki ölkənin logistika şirkətləri və dəniz limanları arasında əməkdaşlığın genişləndirilməsinin əhəmiyyəti vurğulanıb.
⚓️ ADY nümayəndə heyəti limanların fəaliyyəti ilə tanış olub.
🔗 Daha ətraflı: https://sml.az/ady-georgia-ports
#AzərbaycanDəmirYolları#ADY
🇦🇿🇬🇪 Gürcüstanın Poti Limanında “Azərbaycan Dəmir Yolları” QSC və “Gürcüstan Dəmir Yolları” SC-nin rəhbər heyətlərinin iştirakı ilə Poti–Bakı ekspres blok-qatarının yola salınması mərasimi keçirilib.
Bu xidmət sayəsində yük sahibləri yalnız vaxtlarına deyil, həm də terminalda yük və boş konteynerlərin saxlanması kimi xərclərə qənaət edə biləcəklər.
🔗 Daha ətraflı: http://sml.az/poti-baku-express
#ADY#AzərbaycanDəmirYolları
🤝🚆 Tbilisidə Bakı–Tbilisi–Qars dəmir yolu xətti üzrə birgə müəssisənin tam fəaliyyətə başlamasının təmin edilməsi məqsədilə müqavilələr imzalanıb.
🛤️ Yeni razılaşmalar Marabda–Axalkalaki dəmir yolu infrastrukturundan istifadə və Axalkalaki stansiyasında terminal xidmətlərinin göstərilməsini nəzərdə tutur.
🔗 Daha ətraflı: https://sml.az/ady-btq-muqavileler
#ADY#AzərbaycanDəmirYolları
📢 Bakı və ətraf ərazilərdə dəmir yolu şəbəkəsini genişləndiririk. 2030-cu ilədək əlavə 25 dayanacaq və stansiya istifadəyə veriləcək.
ℹ️Dövlət Proqramı çərçivəsində aşağıdakı istiqamətlərdə dəmir yolu xətləri bərpa olunacaq və yeni stansiyalar tikiləcək:
📍Yeni Suraxanı-Hövsan (4 stansiya)
📍Bakıxanov-Binə-Qala (7 stansiya)
📍 Zabrat-Maştağa-Bağlar (7 stansiya)
ℹ️🚆Onu da qeyd edək ki;
- Dərnəgül dayanacağının tikintisi sürətlə davam edir
- Kürdəxanı, Fatmayı, Saray və Binəqədi dayanacaqları yaradılır
- Baş Keşlə və Nərimanov stansiyalarında qatarların dayanması təmin olunacaq
🚉 Dəmir yolu xətlərini şəhərin hər nöqtəsinə daha yaxın edirik.
#ADY#AzərbaycanDəmirYolları
📢 ADY artan sərnişin tələbatını təmin etmək məqsədilə 1 fevral tarixində Bakı-Ağstafa-Bakı istiqamətində əlavə qatar reysləri təyin edir.
🚆🗓️ Eyni zamanda, bu istiqamətlər üzrə gündəlik Bakı–Qazax–Bakı marşrutu ilə də səfər edə bilərsiniz.
🎫 Biletləri dəmiryol kassalarından, ADY-nin rəsmi saytından və ya “ADY Mobile” tətbiqindən əldə etmək olar.
#ADY#AzərbaycanDəmirYolları
🤝 AZCON Holding şirkətlərindən olan ADY-nin sədri Rövşən Rüstəmov Dünya Bankının Avropa və Mərkəzi Asiya regionu üzrə infrastruktur direktoru Çarlz Kormye ilə görüşüb.
💬 Görüşdə ADY ilə DB arasında əməkdaşlığın mövcud vəziyyəti, münasibətlərin genişləndirilməsinin əhəmiyyəti müzakirə olunub, Dünya Bankının Bakı Beynəlxalq Dəniz Limanının 2-ci mərhələsi üzrə işlərdə iştirakı, həyata keçirilən işlərə texniki dəstəyi və investisiya ayrılması imkanları barədə fikir mübadiləsi aparılıb.
🔗 Daha ətraflı: https://tinyurl.com/ady-dunya-banki-emekdashliq
#AzərbaycanDəmirYolları#ADY