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

Резултати

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

Пребарај: #gym

当前筛选 #gym清除筛选
BMB PFC

@bmbpfc · Post #14832 · 03.02.2026 г., 10:48

#TRAINING | #GYM Bugungi fitness mashgʻulotida jamoamiz jismoniy holat ustida jiddiy ishladi. Kuch, chidamlilik va muvozanatni rivojlantirishga qaratilgan mashqlar orqali futzalchilar o‘z sport formalarini yanada mustahkamlashmoqda. Mashgʻulot jarayonlari doimgidek “MDIST SC”da boʻlib oʻtdi. Telegram|Facebook|Instagram | Uzum

BMB PFC

@bmbpfc · Post #14801 · 26.01.2026 г., 06:43

#TRAINING | #GYM Ertalabki fitness mashg‘uloti o‘tkazildi. Jismoniy tayyorgarlikni mustahkamlash va sportchilarning umumiy holatini yaxshilashga qaratilgan mashg‘ulot reja asosida “MDIST SC” fitness zalida tashkil etildi. Shuningdek jamoamiz bugun ikkinchi bosqich mashgʻulotini ham oʻtkazadi. U haqida kechki postlarimizda batafsil bilib olishingiz mumkin. Telegram|Facebook|Instagram | Uzum

BMB PFC

@bmbpfc · Post #14522 · 18.12.2025 г., 12:21

#FITNESS_TRAINING #GYM BMB PFC mashgʻulotlarni davom ettirmoqda. Navbatdagi mashgʻulot jarayonlari fitnes zalida oʻtkazildi. Jismoniy kuchni yanada yaxshilashga qaratilgan mashgʻulot jarayonlari “MDIST SC”da boʻlib oʻtdi. Telegram|Facebook|Instagram | Uzum

BMB PFC

@bmbpfc · Post #14136 · 30.10.2025 г., 02:15

#FITNESS_TRAINING #GYM BMB PFC mashgʻulotlarni davom ettirmoqda. Navbatdagi mashgʻulot jarayonlari fitnes zalida oʻtkazildi. Jismoniy kuch — bu nafaqat mushaklar, bu ishonch, qat’iyat va gʻalabaga boʻlgan ishtiyoqdir. BMB sog’lom turmush tarzi tarafdori, Za'faron sog'lig'ingiz garovi. Kuzatishda davom eting. Tavsiya etamiz: BMB ZA’FARON mahsuloti. Buyurtma qilish uchun: 📞 Call center +998555162299 Telegram|Facebook|Instagram | Uzum

BMB PFC

@bmbpfc · Post #13818 · 06.10.2025 г., 07:45

#FITNESS_TRAINING #GYM BMB PFC “Oliy liga” 3-tur uchrashuvlariga tayyorgarlikni davom ettirmoqda. Bugungi dastlabki mashgʻulot jarayonlari fitnes zalida oʻtkazildi. BMB sog’lom turmush tarzi tarafdori, Za'faron sog'lig'ingiz garovi. Kuzatishda davom eting. Tavsiya etamiz: BMB ZA’FARON mahsuloti. Buyurtma qilish uchun: 📞 Call center +998555162299 Telegram|Facebook|Instagram | Uzum

ПретходнаСтраница 1 од 3Следна