@pixiv · Post #203 · 16.05.2017 г., 21:47
#Matsuri おか pixiv.net/i/56977848
Hashtags
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
Пребарај: #matsuri
@pixiv · Post #203 · 16.05.2017 г., 21:47
#Matsuri おか pixiv.net/i/56977848
Hashtags
@QIN2DIM · Post #359 · 12.11.2022 г., 01:30
#RELEASE#Matsuri0.5.3 Support Hysteria 1.3 Port Hopping 使用注意: 1. 需要使用多端口时,「服务器」按照 `example.com:1145,5144-10240` 格式填写,「服务器端口」随意填写。 2. 不使用多端口时,「服务器」和「服务器端口」按照原来的方式填写。 3. 需要安装最新版 Matsuri Hysteria 插件。 4. 不兼容链式代理。 Download / 下载
@FreeVPN8 · Post #4614 · 30.06.2023 г., 16:46
#代理工具#matsuri
@FreeVPN8 · Post #4423 · 01.06.2023 г., 10:45
#代理工具#matsuri
@FreeVPN8 · Post #4291 · 26.04.2023 г., 03:53
#代理工具#matsuri
@miaomua · Post #230 · 06.07.2022 г., 04:43
#RELEASE#Matsuri0.3.14 - 重新添加 Hysteria disableMtuDiscovery - 为 Trojan 配置添加 v2ray 传输选项 - 不再使用 Trojan-Go 提供 Trojan 实现* - 错误修复 - Re-added Hysteria disableMtuDiscovery - Added v2ray transfer option for Trojan configuration - No longer provide Trojan implementation using Trojan-Go - Bug fixes * 用 Trojan-Go 实现的 Trojan 配置实际上是与 Trojan-Go 配置一致的,需要的用户可以将配置转换为 Trojan-Go,普通用户无需操作。 Download / 下载
@pixiv · Post #216 · 25.05.2017 г., 09:36
#Landscape#Matsuri#Yellow たみ。 pixiv.net/36959927
Hashtags
@QIN2DIM · Post #354 · 09.11.2022 г., 22:56
#blog#Hysteria#Matsuri 追加更新! 介绍 Matsuri(茉莉)+ Hysteria 安卓移动端网络优化方案。 原文链接:paper 频道:@QIN2DIM's Tech Channel
@QIN2DIM · Post #312 · 31.08.2022 г., 07:42
#blog#Hysteria#Matsuri 通过 Matsuri 在 Android 手机上运行 Hysteria 代理核心。 本文继续介绍有关 Hysteria 代理核心更多内容。本篇文章以 Matsuri 为切入点,介绍在 Android 手机上启动 Hysteria 代理核心的 quick-start 必要步骤,开箱即用。 如果你已持有一枚可用的 Hysteria 节点链接,只需要花费不到 3 分钟的时间便可在自己的手机上架起代理与互联国际完成「友好交互」。 原文链接:https://blog.echosec.top/p/matsuri-hysteria/ 频道:@QIN2DIM's Tech Channel
@cosplayuploadtest2 · Post #102063 · 23.03.2025 г., 02:57
Title: Matsuri_Goto_後藤まつり,_アイドルワン_I_One_サンプル版_アイドル Authors: #None Tags: #None#Matsuri_Goto_後藤まつり#アイドルワン_I_One#Matsuri#Goto#後藤まつり#アイドルワン#I_One#サンプル版#アイドル recommendation: None TelegraphLinks:page-0-19