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

Резултати

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

Пребарај: #agsv

当前筛选 #agsv清除筛选
PT风向旗

@Ptfxq · Post #651 · 26.04.2024 г., 01:36

关闭登录的内站登陆方法、各站点的官方群组、频道、机器人等信息。本条消息将及时更新,转发消息请点击👆🏻“PT风向旗“👆🏻查看最新版本 因为 TG 的单条消息的字数限制,故切分消息并按照首字母排序。共三条消息,本条消息为第一条,包含数字开头及 A-G 开头的站点。 #1PTBA 官方频道:https://t.me/on1ptba 官方群组:https://t.me/ptbar_Chat 关门登录:印象中没关过门 #2xfree 官方频道:https://t.me/group_2xfreeOrg 官方群组:https://t.me/vr2xfreechat 关门登录:印象中没关过门 #3wmg#芒果 官方群组:https://t.me/www3wmg #52pt 官方群组:https://t.me/joinchat/NcihYBedvjXZIG5qEKXcpQ #Audiences#观众 官方机器人:https://t.me/Audiences_Official_Bot 官方频道:https://t.me/Audiences_Channel 官方群组:绑定官方机器人加入 关门登录:通过官方机器人获取登录链接 #AGSV#AGSVPT 官方机器人:https://t.me/agsvpt_account_bot 官方群组:https://t.me/AgsvPT_public 关门登录:在网址后加 "/agsvpt" 即可。 #Azusa#梓喵 官方机器人:https://t.me/AzusaServiceBot 官方群组:绑定官方机器人加入 关门登录:通过官方机器人获取登录链接 #BTS#BTSchool#学校 无任何官方频道、群组、机器人。 非官方群组:https://t.me/btschoolclub 关门登录:只能自行备份 #BYR#BYRPT#北邮#北邮人 官方频道:https://t.me/byr_status 关门登录:印象中没关过门 #CarPT#车#车站 什么都没找到 #CHD#CHDBits#彩虹岛#岛 官方群组:https://t.me/+4GL9H6BlQrczNmM5 关门登录:不定期在 QQ 群内发送登录链接。 #Cyanbug#大青虫 官方群组:https://t.me/cyanbug 关门登录:印象中没关过门 #CMCT#SSD#春天 官方机器人:https://t.me/cmct_bot 官方群组:绑定官方机器人加入 官方频道:https://t.me/+xlhFGICfmOZmMGU9 非官方资讯频道:https://t.me/cmc_tnews 官种 RSS 官方频道:https://t.me/ssd_offical_rss 保种区 RSS 官方频道:https://t.me/ssd_guarder_rss 关门登录:通过官方机器人获取登录链接 #Dajiao#打胶 官方群组:https://t.me/DaJiaoPT_Group 关门登录:印象中没关过门 #DiscFan#碟粉 官方 RSS 机器人:https://t.me/DiscFan_RSS_Bot 官方 RSS 频道:https://t.me/DiscFanChannel 官方群组:https://t.me/discfanofficial 关门登录:印象中没关过门 #DICMusic#DIC#GreatPosterWall#GPW 官方机器人:https://t.me/DICGate_Bot 官方频道:https://t.me/DolphinIsComing 官方群组:https://t.me/joinchat/I5xEuEgEQ29Q75zV5WNW4g 账号申诉群:https://t.me/joinchat/LBgGJQs8DKhO7yOHFvH9Jw 关门登录:通过官方机器人获取登录链接 #DragonHD#龙之家 什么都没找到 #FRDS#KEEPFRDS#朋友 官方机器人:https://t.me/NasaRelayBot 官方频道:https://t.me/LetUsKeepFriendsForever 官方群组:https://t.me/+FrUb_hj2hodiNmZl 压制交流群:https://t.me/+V3PD9djMoUr4v38n 关门登录:印象中没关过门 #FreeFarm#自由农场 官方机器人:https://t.me/FFarmBot 官方频道:https://t.me/+TZrLdBvaoA4zMmY9 官方群组:https://t.me/+eItLwsrYPzlmNTQ1 关门登录:通过官方机器人获取登录链接 #FSM 官方机器人:https://t.me/FsmPrivateBot 官方频道:https://t.me/FsmNotify 官方群组:https://t.me/+9vgDC8VFVNlkMjE0 关门登录:印象中没关过门,如果登录不上挂个梯子试试 #GTK#ptgtk 什么都没找到 #GGPT#GameGamePT 官方频道:https://t.me/GGPTcom 官方群组:https://t.me/gamegamept 关门登录:印象中没关过门