TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #381 · 23 окт.

Установить свойства виджета в 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

Hashtags

Резултати

Пронајдени 2 слични објави

Пребарај: #yangikampus

当前筛选 #yangikampus清除筛选

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

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