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

Резултати

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

Пребарај: #now

当前筛选 #now清除筛选
СОЛОДИН LIVE

@goodtraders · Post #9515 · 16.04.2026 г., 13:44

#NOW Раз уж засветил публично спекулятивный трейд - оповещаю и о его закрытии. ✅ Три дня прошло в сделке = профит фактор 1 к 2,6 получилось. В инвест портфеле лонг сохраняю.

Hashtags

Space Universe🌌

@spaceuniverses · Post #148 · 27.02.2022 г., 07:00

🌟Right #now Chandra is studying a Black Hole in galaxy UGC 3855. While the galaxy is located about 180 million light years from Earth, the brilliant star seen photobombing the galaxy in this image is actually much closer to us. This creates the illusion that the star is huge.

Hashtags

互联E栈

@bcd8888 · Post #740 · 01.05.2025 г., 09:09

#Now Write #付费限免#内购限免 🔘软件介绍 图片、视频、音频构建您的日记 🔘软件价格 38元→免费→中文→内购限免 🔘软件链接 App Store下载 限免随时结束速度冲! 🔊频道💬群组🎁福利📍导航

🚘 1星司机 大佬(⭐) 发布了一辆 #Now E 5 人合租车,欧洲4大联赛,欧冠欧联欧协联,所有now体育台最低 165.45 元/月,剩余 5 个空位置. 点击上车 🚘 1星司机 ゞ梦や魇‰(⭐) 发布了一辆 #Xbox Game Pass Unlimited 3 人合租车,xgpu会员最低 6.5 元/月,剩余 3 个空位置. 点击上车 🚘 1星司机 佬(⭐) 发布了一辆 #Xbox Game Pass Unlimited 10 人合租车,订阅季付多送几天,全球通用,账号登录微软商店即可在xbox以自己账号同步成就和游戏进度最低 4.33 元/月,剩余 1 个空位置. 点击上车 🚘 4星司机 cm(⭐⭐⭐⭐) 发布了一辆 #1Password 4 人合租车,家庭成员车位,2024/2/22到期,非一年试用bug活动车,保险库数据仅自己可见最低 4.23 元/月,剩余 4 个空位置. 点击上车

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