@stbpfx · Post #486 · 12.10.2025 г., 13:40
🍔机场名称: #Flownet 🍟注册即送 999999.00 GB/41666天 "Flownet套餐" 🍿节点地区范围 日本、美国、德国 🥤协议类型 Hysteria2, AnyTLS 机场跑路风险难预估,建议求稳选月付! #试用机场
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
Пребарај: #flownet
@stbpfx · Post #486 · 12.10.2025 г., 13:40
🍔机场名称: #Flownet 🍟注册即送 999999.00 GB/41666天 "Flownet套餐" 🍿节点地区范围 日本、美国、德国 🥤协议类型 Hysteria2, AnyTLS 机场跑路风险难预估,建议求稳选月付! #试用机场
@wxdy666 · Post #5731 · 13.10.2025 г., 01:03
https://flownet.store/#/register?code= 🌐 Flownet (永久免费) 🌐 🎁 套餐福利: - 流量: 999TB 🤯 - 时长: 999+天 🗓 🌍 节点覆盖: 🇯🇵 日本 | 🇺🇸 美国 | 🇩🇪 德国 ⚙️ 协议类型: - Hysteria 🚀 点击注册 #白嫖机场#Flownet#Hysteria https://5f236t3.flownet.store/s/aaf1bed89a4116bb68102a335b66b631 https://5f236t3.flownet.store/s/029bd6ff9153aed12ae4e41ee93db013 https://5f236t3.flownet.store/s/b3c737e8dbf01fa64c14319d002a6dd1 https://5f236t3.flownet.store/s/b3c737e8dbf01fa64c14319d002a6dd1 🍟 节点来源:网友大哥匿名投稿 ⚠️ 恶意刷流量者亲🐎原地爆炸 🥴 多多转发与分享才能激励出更多更好的订阅分享给大家 🤖 投稿助手:@wxdy_bot 🚀 节点分享:@wxdy666
@dingyue_Center · Post #3700 · 14.10.2025 г., 10:47
#白嫖机场(所有 #白嫖机场 均不推荐付费‼️) #Flownet 官网注册 群组 频道 真实邮箱 注册送100年100T 🐳这么多流量,这么长时间,机场主看起来并不想丸了 #白嫖机场(所有 #白嫖机场 均不推荐付费‼️) #灵动岛 #Hy2#Trojan 官网注册群组频道 真实邮箱 100GB / 30天 白嫖码: ldd888 失效进群查看