@BGP_Channel · Post #4900 · 20.02.2021 г., 16:43
#MDSS#VPN#SSR 西北 #电信 500M V4mini套餐 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/x1Ozck2
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
Пребарај: #mdss
@BGP_Channel · Post #4900 · 20.02.2021 г., 16:43
#MDSS#VPN#SSR 西北 #电信 500M V4mini套餐 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/x1Ozck2
@BGP_Channel · Post #4812 · 03.02.2021 г., 13:27
#MDSS#VPN#SSR 西北 #电信 500M V4mini目前只有年付 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/G9eklFw
@BGP_Channel · Post #4702 · 15.01.2021 г., 14:42
#MDSS#VPN#SSR 西北 #电信 500M V4mini套餐不确定有没有被限速 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/0x9en1J
@BGP_Channel · Post #4605 · 30.12.2020 г., 17:24
#MDSS#VPN#SSR 西北 #电信 500M 网址:https://mdss.iij.kr TG公告板:https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/9I7p5fm
@BGP_Channel · Post #4578 · 27.12.2020 г., 14:48
#MDSS#VPN#SSR 安徽 #电信 500M 网址:https://mdss.iij.kr TG公告板:https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/ghA8LW7
@BGP_Channel · Post #4345 · 03.12.2020 г., 09:39
#MDSS#VPN#SSR 新疆 #电信 500M 网址:https://mdss.iij.kr Tg公告板:https://t.me/Mdsscloud Tg群组: https://t.me/mdssios
@BGP_Channel · Post #5030 · 07.04.2021 г., 15:12
#MDSS#BGP CNGZ-QCloud #VPN#SSR 官网 mdss.cloud Twitter: https://s.4a.hk/pV3O7xO
@BGP_Channel · Post #4975 · 18.03.2021 г., 12:49
#MDSS#SSR#BGP CNBJ-AWS #VPN mdss.cloud
@AirportAnalysis · Post #1880 · 25.01.2025 г., 10:35
#MDSS#MDSSCLOUD 官网: https://mdss.369.cyou
Hashtags
@BGP_Channel · Post #5090 · 29.04.2021 г., 15:18
#MDSS#南方电信 200M #VPN
@BGP_Channel · Post #4898 · 20.02.2021 г., 14:00
#MDSS#BGP#长城宽带#SSR#VPN 广东长城宽带100M 梦迪yyds 官网 mdss.cloud Twitter: https://s.4a.hk/PQJ51Vp
@airportroster · Post #674 · 01.04.2022 г., 15:57
⏱ 测速频道常见机场 ⏱ 这里是TG机场测速频道常见机场,收录标准为一个月内至少有五次测速,不代表推荐,代表着机场测速热度,此页面长期更新...... #prpr#Immtelecom #Texon#Bywave #Catnet#Flowercloud #MDSS#Creamdata #Nexitally #Godetia#莉莉 #白月光#nanoport #话啦啦 #跑路云#Miaona #Gacloud #可莉#Maying (魅影极速) #sslinks #Dlercloud#Fishport #Ytoo #Amytelecom #infiniport #WavesLink #忽悠云服务 #猫熊 #Bitznet 上次更新时间: 2022.08.12