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 слични објави

Пребарај: #lcup

当前筛选 #lcup清除筛选
Suxrob Xurramov | Blog

@suxrobblog · Post #1376 · 19.01.2026 г., 16:52

Vaqtning o‘tishini qarang… Kechagina LC-UP jamoasi bilan tanishgandekman. Odatda ilmiy yo‘nalishdagi loyihalar bilan ishlaganim sabab, kichkina yangilanish sifatida boshlangan hamkorlik oxir-oqibat butun ilovani to‘liq redesign qilishga olib kelgandi. Shunga qaramay, bugun qariyb 50 000 foydalanuvchiga ega bo‘lgan student ilovalarini yangilashga ulgurdik. Ular orasida LC-UP, My School, Vision School, TM school va (oliygoh,uz sayti) boshqa loyihalar ham bor. Vaqt shunchalik tez o‘tibdiki, 6 oy qanday o‘tib ketganini sezmay qolibman. Bu loyiha uchun qilgan research’larim, o‘rganilgan muammolar va topilgan yechimlar hanuz yodimda. Bu yerda faqat dizayn emas, balki haqiqiy product bilan yashash tajribasi bo‘ldi desam ham mubolagʻa boʻlmaydi. Sababi, ilova kundan kunga takomillashib bormoqda. Funksiyanallik taraflama men bemalol ayta olamanki, boshqa raqobatchilarning tushiga kirmagan geymfikatsion yechimlar oʻylab topgan edim. Unaqasi hattoki Duolingoda ham yoʻq! :) P.s. Oʻzim ham harchoq ilovadan student sifatida foydalanib turaman.😅 @suxrobblog #lcup#keys

Hashtags

Suxrob Xurramov | Blog

@suxrobblog · Post #1312 · 19.12.2025 г., 20:01

💤Avval - Keyin ✅ LC-UP Student ilovasi uchun tayyorlangan keysimdan lavhalar. 🖥 Toʻliq taqdimot tez kunda Behance platformasida.... @suxrobblog #lcup#keys

Hashtags