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

Резултати

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

Пребарај: #elegant

当前筛选 #elegant清除筛选
Numonov.co

@numonovdesign · Post #243 · 06.12.2023 г., 03:25

#logo#elegant ✅Brend nomi: ELEGANT ⚠️Vazifa: Logo & Identity ❇️Dizayner: No'monov Sherali ➡️Murojaat uchun: @richshax

KTM公益测速联盟

@guyingcs · Post #398 · 10.06.2024 г., 02:33

—————————————— 机场:#Elegant(机场主送测) 测试条件:#辽宁电信1G#辽宁联通1G 机场官网:🌐Elegant 机场频道:@krelegantnetwork 机场群组:@krelegantnet 长期八折优惠码:gay —————————————————— 机场简介:🇰🇷韩国人开的机场,拥有独特的韩国SKB家宽节点。拥有EMBY机场独立服,丰富的资源等你观看! —————————————— 主观评价:速度和解锁都挺不错的了,有韩国家宽,有emby,性价比挺高 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

KTM公益测速联盟

@guyingcs · Post #377 · 02.06.2024 г., 04:48

—————————————— 机场:#Elegant(机场主送测) 测试条件:#辽宁电信1G#辽宁联通1G 机场官网:🌐Elegant 机场频道:@krelegantnetwork 机场群组:@krelegantnet 长期八折优惠码:gay —————————————————— 机场简介:🇰🇷韩国人开的机场 —————————————— 主观评价:速度和解锁都不错,因为是韩国人开的,所以有韩国家宽,还有比较高的性价比 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

⭐️ Melo|26 years old|165cm|F cup #Elegant sister #Active licking #Full of milk 💋 A mature sister type, with a gentle and flirtatious voice~ 💋 The milk is soft and feels good, and the licking and blowing skills are first-class, making you feel so soft/// 💋 I like to make you relax, feel comfortable, and keep shouting don’t stop~ "Come on~ I'll take care of you tonight, okay? I'll make your whole body melt♡" 🍼TG:@aa11603 🍼Gleezy:aa1160 3 🇯🇵東京出張:@aa11605 🇯🇵大阪出張:@aa11604

KTM公益测速联盟

@guyingcs · Post #442 · 11.07.2024 г., 10:35

—————————————— 机场:#Elegant(机场主送测) 测试条件:#辽宁电信1G#珠海联通9G#中山电信 机场官网:🌐Elegant 机场频道:@krelegantnetwork 机场群组:@krelegantnet —————————————————— 机场简介:🇰🇷韩国人开的机场,拥有独特的韩国SKB家宽节点。拥有EMBY机场独立服,丰富的资源等你观看! —————————————— 主观评价:速度出乎意料,解锁不错,家宽+emby,非常可以 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

GitHub Trends

@githubtrending · Post #14866 · 25.06.2025 г., 17:30

#typescript#admin#admin_template#elegant#naive_ui#naive_ui_admin#pinia#typescript#unocss#vite6#vue#vue_admin#vue3 SoybeanAdmin is a modern, elegant, and powerful backend management template built with the latest technologies like Vue3, Vite6, TypeScript, Pinia, and UnoCSS. It offers a clear project structure, strict code standards, automated file routing, and built-in internationalization. It supports flexible permission routing, rich page components, and mobile-friendly layouts, making it ready to use without extra setup. This helps you quickly build or learn advanced admin systems with high code quality and customization options, saving time and improving development efficiency. It also provides command-line tools and mock data support for easier development and testing[1][4][5]. https://github.com/soybeanjs/soybean-admin