@GitCube · Post #110 · 18.05.2024 г., 04:47
#MyBlockAds - 新增部分广告联盟域名 - 屏蔽阿里dns 貌似对新版本京东app的开屏广告有效
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
Пребарај: #myblockads
@GitCube · Post #110 · 18.05.2024 г., 04:47
#MyBlockAds - 新增部分广告联盟域名 - 屏蔽阿里dns 貌似对新版本京东app的开屏广告有效
Hashtags
@GitCube · Post #10 · 23.03.2023 г., 13:56
#MyBlockAds https://quantumult.app/x/open-app/add-resource?remote-resource=%7B%22filter_remote%22%3A%5B%22https%3A%2F%2Fraw.githubusercontent.com%2FRuCu6%2FQuanX%2Fmain%2FRules%2FMyBlockAds.list%2C%20tag%3DMyBlockAds%2C%20force-policy%3Dreject%2C%20update-interval%3D172800%2C%20opt-parser%3Dfalse%2C%20inserted-resource%3Dtrue%2C%20enabled%3Dtrue%22%5D%2C%22rewrite_remote%22%3A%5B%22https%3A%2F%2Fraw.githubusercontent.com%2FRuCu6%2FQuanX%2Fmain%2FRewrites%2FMyBlockAds.conf%2C%20tag%3DMyBlockAds%2C%20update-interval%3D172800%2C%20opt-parser%3Dfalse%2C%20inserted-resource%3Dtrue%2C%20enabled%3Dtrue%22%5D%7D
Hashtags
@GitCube · Post #323 · 27.12.2025 г., 23:52
#MyBlockAds#淘宝 修复 开屏广告失效
Hashtags
@GitCube · Post #272 · 15.02.2025 г., 02:04
#Loon#MyBlockAds 移除 太平洋寿险开屏广告 移除 太平洋寿险悬浮窗口
Hashtags
@GitCube · Post #103 · 20.04.2024 г., 03:31
#MyBlockAds#京东 2024-04-19 京东12.6.2版本 去广告失效
Hashtags
@GitCube · Post #61 · 20.12.2023 г., 11:07
#MyBlockAds#京东 移除 首页底部通栏gif 移除 我的页面顶部京东快讯
Hashtags
@GitCube · Post #55 · 16.12.2023 г., 01:10
#MyBlockAds#京东 调整 信息流屏蔽规则 现在可以刷首页的信息流了
Hashtags
@GitCube · Post #54 · 15.12.2023 г., 00:28
#MyBlockAds#京东 移除 新版关注的频道 调整 新版底部工具栏位置
Hashtags
@GitCube · Post #116 · 09.07.2024 г., 03:09
#MyBlockAds#微信 移除微信公众号推广 非完全体 无法解密 只能禁止广告加载 广告加载也没去干净 仍有遗漏🤡
Hashtags
@GitCube · Post #335 · 12.03.2026 г., 11:07
#MyBlockAds#小米商城 修复 小米商城app无法搜索
Hashtags
@GitCube · Post #324 · 30.12.2025 г., 00:14
#MyBlockAds#小米商城 移除 搜索框热词 移除 底部营销浮窗 移除 搜索列表无关的商品推荐 移除 个人页面活动浮窗
Hashtags
@GitCube · Post #303 · 30.06.2025 г., 00:30
#MyBlockAds#小米商城 移除 首页丘比特弹窗 移除 分类列表下方-商品推荐 移除 我的页面-底部轮播广告
Hashtags