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

Резултати

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

Пребарај: #pkc

当前筛选 #pkc清除筛选

#QuantumultX#Loon#PKC#API ✅#B站视频解析📱 1️⃣ 导入重写: QuanX: 点击导入 Loon: 长按复制 2️⃣ 微信pkc插件-关键词自动回复 1.匹配模式选开头 2.1 关键字(必填)填 b站搜索= 2.2 关键字(必填)填 b站视频= 3.1 自动回复文本(必填)中填 /pkc text 1 [反选] 3.2 自动回复视频(必填)中填 /pkc video 1 [反选] 3️⃣ 参数设置 文本API1: https://api.sheep.com/sheep/bilibili/videotag/[参数1]/ 视频API1: https://api.sheep.com/sheep/bilibili/video/[参数1]/ 查看测试效果 👤 脚本作者: @Sheepfj 注意:该接口会返回搜索到的第一个视频,所以可以先关键词搜索获取对的标题,然后再触发视频接口

#脚本#QuantumultX#AI #PKC#BoxJS 📱#PKC微信助手(综合) 📌 功能脚本: 支持上下文,对应联系人设定 👤 脚本作者: @Sheepfj ❗️ 使用说明: 1️⃣ 请先设置Boxjs 1️⃣ 导入boxjs脚本重写: 点击安装 2️⃣ 浏览器访问链接: 点击跳转 3️⃣ 下方第三个订阅按钮进入在右上角添加订阅地址 长按复制地址 4️⃣ 然后下方第二个按钮选择对应的模块进入根据提示填入参数 5️⃣ 使用Boxjs设置全局设定与单独对某人设定,同时手动删除对话与查看对话 2️⃣ 导入重写: 点击导入 3️⃣pkc插件-关键词自动回复 打开关键词自动回复,进入关键词回复设置右上点添加 1️⃣ 匹配模式选开头 2️⃣ 关键字(必填)填 # 3️⃣ 自动回复文本(必填)中填写 /pkc text 1 [备注]/[原文] 4️⃣pkc插件-自定义接口Api 打开自定义文本api,然后进入配置,在API1中填写 https://movies.disney.com/sheep/video/gpt/[参数1]/ 💬 温馨提示: 使用APIX就使用 /pkc text X [原文] 💬交流反馈

#脚本#QuantumultX#AI#Loon #PKC#BoxJS#微信 😉#PKC微信助手(综合) 支持圈x与Loon 🛡更新:支持上下文,支持为对应联系人设定 👤 脚本作者: @Sheepfj 1️⃣导入重写:圈x: 点击导入 Loon: 复制脚本 2️⃣设置微信pkc插件--关键词自动回复 pkc插件中打开关键词自动回复,进入关键词回复设置右上点添加, 1.匹配模式选开头 2.关键字(必填)填 # 3.自动回复文本(必填)中填写 /pkc text 1 [备注][原文] 3️⃣设置微信pkc插件--自定义接口Api 打开自定义文本api,然后进入配置,在API1中填写 https://api.sheep.com/sheep/wechatgpt/?[参数1] 支持的指令设置 💳注意:使用APIX就使用/pkc text X [备注][原文] ,之前配置过的先移除

#PKC#聚合API #SheepAPI#PKC接口配置 免费组合接口,适用于微信PKC插件 1.帮作者GitHub点点关注,求求了(接口维护真的挺耗时间的) 2.在系统绑定你的deepseek_apikey,复制返回的接口链接 3.按照图片,在PKC设置图一图二,两条关键词自动回复 4.自定义接口Api-->文本Api-->接口1中填写复制的接口(图片api一样操作) 配置教程

#Task#脚本#QuantumultX#PKC#API 📈#星座运势 ➖➖➖➖➖➖➖➖➖➖➖ 🌙#星座游戏大全 导入重写: 长按复制 下载地址: 点击下载 脚本说明: 解锁付费内容 ➖➖➖➖➖➖➖➖➖➖➖ 💡#疯狂百科问答 导入重写: 长按复制 下载地址: 点击下载 脚本说明: 解锁会员功能 ➖➖➖➖➖➖➖➖➖➖➖ 🗂 添加Task任务,圈X通知 添加任务: 长按复制 使用说明: 打开圈X下面一排风车旁边🗂Task → 右上角第一个📊按钮→点击打开后右上角+号 → 复制粘贴到里,然后选择添加『星座运势』 ➖➖➖➖➖➖➖➖➖➖➖ 🌐 Boxjs导入/修改: 1️⃣ 导入boxjs脚本重写: 点击安装 2️⃣ 浏览器访问链接: 点击跳转 3️⃣ 下方第三个订阅按钮进入在右上角添加订阅地址: 长按复制地址 4️⃣ 然后下方第二个按钮选择对应的模块进入根据提示填入参数 ➖➖➖➖➖➖➖➖➖➖➖ ⭐ 用于PKC的API接口 1️⃣ 导入文本重写: 点击安装 2️⃣ 设置微信pkc插件-关键词自动回复 1.匹配模式选开头 2.关键字(必填)填 星座= 3. 自动回复文本(必填)中填 /pkc text 1 [反选] 3️⃣ 设置微信pkc插件-自定义接口Api 在文本API中填写 https://movies.disney.com/sheep/constellation/[参数1]/ ➖➖➖➖➖➖➖➖➖➖➖ ✈️导航💬群组🤖投稿🎁福利