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

Пребарај: #clawbot

当前筛选 #clawbot清除筛选
折腾实验室频道

@TossLabChannel · Post #1010 · 22.03.2026 г., 14:33

#微信#WeChat#OpenClaw#ClawBot 📱 微信 8.0.70 新增 ClawBot 插件,无缝连接 OpenClaw 近日,微信发布了 8.0.70 版本。在这个版本中,微信团队在插件页面低调上线了一款强大的新功能——“微信 ClawBot”插件。通过这一官方插件,用户可以直接在微信中与 OpenClaw 进行消息收发,极大拓展了移动端的 AI 与自动化交互场景。 ✨ 什么是微信 ClawBot? 微信 ClawBot 的核心作用是作为通信桥梁,打通微信客户端与用户本地或服务器上运行的 OpenClaw 服务。这意味着你无需切换应用,直接在微信内就能向你的 OpenClaw 发送指令,并实时获取反馈结果,瞬间将微信变成一个强大的移动控制台。 💡 项目亮点与优势 无需复杂的内网穿透配置,只需在运行 OpenClaw 的设备上简单开启插件并使用微信扫码绑定,即可快速完成接入。无论是用于智能家居控制、打造个人专属 AI 助理,还是实现高效的自动化消息推送,微信 ClawBot 都提供了极大的想象空间。官方原生级支持,也最大程度保障了连接的稳定性和便捷性。 🔘@TossIPhone🔘@TossIChannel

GitHub Trends

@githubtrending · Post #15561 · 14.03.2026 г., 12:30

#python#agent#agentic_rag#ai_agents#clawbot#context_database#context_engineering#filesystem#llm#memory#openclaw#opencode#rag#skill OpenViking is a free open-source tool that acts as a context database for AI agents, using a simple file system to organize memories, resources, and skills under viking:// paths. It fixes issues like scattered data, high token costs, weak searches, and untraceable errors with tiered loading (L0 abstracts, L1 overviews, L2 details loaded on demand), recursive directory retrieval, visual traces, and auto-session memory updates. You benefit by building smarter, cheaper agents faster—like managing files—saving up to 96% on tokens while boosting task success by 50%+. https://github.com/volcengine/OpenViking