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

Резултати

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

Пребарај: #freebies

当前筛选 #freebies清除筛选
AppPie

@AppPie · Post #2585 · 12.12.2025 г., 08:00

#Promotions Epic 喜加一 —— 霍格沃茨之遗 🔗Epic Games Store 《霍格沃茨之遗》是一款基于《哈利·波特》系列书籍设定的沉浸式开放世界动作角色扮演游戏。 在旅程中,你将造访那些熟悉的和陌生的地点,发现奇妙的野兽,自定义你的角色并制造魔药,掌握施放咒语的技巧,升级天赋并成为你所向往的巫师。 优惠截止于2025/12/18 08:00。 #EpicGamesStore#Freebies 📮 频道 @AppPie 🌐 网站 apppie.com

AppPie

@AppPie · Post #2507 · 04.09.2025 г., 16:40

#Promotions Epic 本周限免 —— 纪念碑谷 🔗Epic Games Store 踏上宽恕之旅,穿越几乎不可能破解的环境和幻想谜题。操纵纪念碑、创建不断发展的道路,探索全新超现实且神秘的世界,体验这款平静的冥想解谜游戏。 优惠截止于2025/9/11 08:00。 #EpicGamesStore#Freebies 📮 频道 @AppPie

AppPie

@AppPie · Post #2527 · 19.09.2025 г., 02:34

#Promtions Epic《冬日计划》和 Steam《Away》等限免开启 Epic 平台送出两款作品:多人在线生存游戏《冬日计划》,玩家需要在8人团队中合作生存,同时揪出潜藏的叛徒,考验着合作与甄别能力;以及画风梦幻的经典解谜冒险游戏《银河历险记2》,玩家将跟随主角开启一场拯救狗狗的奇妙旅程。 与此同时,Steam 平台则提供了一款风格极简的黑白光影叙事游戏《Away》,它旨在通过沉浸式的音画体验,引导玩家完成一段关于死亡的短暂思考。 冬日计划 在冰天雪地的荒野中,活下去只是第一步。八人组队合作,收集资源、修复设施、抵御野兽,只为呼叫救援逃出生天。然而危险不仅来自严寒与饥饿,更潜藏在身边的同伴中——他们中有人是叛徒,随时可能撒谎、破坏、甚至背刺最亲密的伙伴。 银河历险记 2 《银河历险记 2 (Samorost 2)》讲述着一段关于太空地精的梦幻故事,他的狗狗刚刚被胡作非为的外星人绑架了。展开一段短暂的冒险来拯救狗狗,与各种奇怪的陌生人打交道并放松地聆听 Tomáš "Floex" Dvořák 所谱写的舒缓音乐。 Away 从灰白的光影到最后的静默,《Away》以极简之姿描绘死亡的体验。在阴郁的黑白世界里,你将跟随主角的脚步,沉浸于低沉而细腻的音效氛围,完成一段短暂却意味深长的旅程。支持英文与俄文全程本地化,并配备 Steam 成就系统,让这份独特的体验更加完整。 Epic 2 款游戏限免截止于 2025 年 9 月 25 日上午 8:00,Steam 1 款游戏限免截止于 2025 年 9 月 24 日上午 10:00,不要错过。 #EpicGamesStore#Steam#Freebies 📮 频道 @AppPie