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

Резултати

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

Пребарај: #changlog

当前筛选 #changlog清除筛选
Cool Scripts

@cool_scripts · Post #1096 · 10.04.2026 г., 10:04

🔗Sub-Store 更新 ⚙️ 后端: 2.21.87 🌐 前端: 2.16.48 - 支持订阅/文件级别的自定义缓存时长 示范: https://a.com?token=123#cacheTtl=3600&headersCacheTtl=3600 当然若未设置就是用的全局缓存(前端: 我的 - 缓存配置) 感谢群友 @ywpdadao 的反馈 🤭Sub-Store 合集 🥰#SubStore#更新记录#changlog#updates

Cool Scripts

@cool_scripts · Post #1095 · 10.04.2026 г., 08:31

🔗Sub-Store 更新 ⚙️ 后端: 2.21.86 🌐 前端: 2.16.46 - 现已支持每次发布时自动跟随 mihomo 版本号更新默认 User-Agent - 列表页的即时订阅自动获取流量信息, 编辑详情里的即时订阅不再获取流量信息 🤭Sub-Store 合集 🥰#SubStore#更新记录#changlog#updates

Cool Scripts

@cool_scripts · Post #1093 · 10.04.2026 г., 02:00

🔗Sub-Store 更新 ⚙️ 后端: 2.21.84 - 完善 VLESS URI 与 mihomo 转换 由于 VLESS URI extra 字段复杂且其他客户端不一定跟进, 所以输出 URI 时, 若存在原始的 _extra 字段, 则直接使用该字段的值输出到 URI 的 extra 部分, 而不进行解析和重组 🤭Sub-Store 合集 🥰#SubStore#更新记录#changlog#updates

Cool Scripts

@cool_scripts · Post #1088 · 06.04.2026 г., 04:02

🔗Sub-Store 更新 后端 2.21.78 前端 2.16.44 - 新增链接参数 prettyYaml 输出块状 YAML, 但是 emoji 会被转义 默认是单行 JSON 风格, 方便复制使用单行 JSON - mux 处理逻辑优化 - 前端文案修改 新增了 Egern 使用代理策略的说明 🤭Sub-Store 合集 🥰#SubStore#更新记录#changlog#updates

Cool Scripts

@cool_scripts · Post #1087 · 05.04.2026 г., 11:21

🔗Sub-Store 更新 后端 2.21.77 前端 2.16.43 - 大屏响应式布局, 支持双列模式 改动较大, 若有问题请及时反馈 🙏 - clash 系/sing-box mux 逻辑处理 感谢 群友 @KDYgMJqHBwsi755auLZD6nN477C7hQXQ 的反馈 🤭Sub-Store 合集 🥰#SubStore#更新记录#changlog#updates

Cool Scripts

@cool_scripts · Post #1086 · 05.04.2026 г., 02:05

🔗Sub-Store 更新 前端 2.16.41 后端 2.21.76 - 支持使用 GitHub 加速代理 + 正则匹配 可用于加速所有命中的远程链接 例如: 脚本/订阅/图标库/图标 当然 你的 GitHub 加速代理 需要支持这些 URL 才行. 某些公益服务不支持所有 URL - 图标库优化 支持加载状态展示和失败重试 - 修复 Surge 模块版无法使用已归档的问题 对不起常年使用服务器版的我又把代理 App 版给忘了...红豆泥私密马赛! 感谢 群友 @Oscens 的反馈 🤭Sub-Store 合集 🥰#SubStore#更新记录#changlog#updates

123•••10•••20•••2930
ПретходнаСтраница 1 од 30Следна