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

Резултати

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

Пребарај: #compare

当前筛选 #compare清除筛选
MDC Uzbekistan

@mdcuzbekistan · Post #7 · 14.05.2021 г., 15:13

Java VS C# Dastur tuzuvchi sifatida kelajagingizni aks ettira boshlaganingizda, ya’ni dasturlashni o’rganayotganingizda sizga bu juda qiyin savol bo’lish mumkin, qaysi biridan boshlaganim ma’qul? Har qanday tilni o’rganish uchun juda ko’p kuch, vaqt va sabr kerak bo’ladi (to’g’risini aytgan yaxshida). 👉Batafsil 👨‍🏫 Mentor: Suxrob Xayitmurodov #csharp#java#compare#select .NET Uzbekistan Community __________ Telegram | Instagram | Youtube

Лёгкое небо

@legkoenebo · Post #4132 · 15.07.2025 г., 08:08

Флот🛩vs 🛩 vs 🛩 📌Три крупнейшие авиакомпании Ближнего Востока — Emirates, Qatar Airways и Etihad Airways — служат глобальными транзитными узлами между континентами благодаря своему стратегическому расположению. Хабы: 🛩: Дубай 🛩: Абу-Даби 🛩: Доха 📌Флот Emirates 254 широкофюзеляжных самолета Основные типы: ⏺Airbus A380: 116 самолетов ⏺Boeing 777-300ER: 117 самолетов ⏺Boeing 777-200LR: 9 самолетов ⏺Airbus A350-900: 57 самолетов Заказы: 35 Boeing 787 Dreamliner и свыше 200 Boeing 777X Особенности: Использует только широкофюзеляжные самолеты, ориентирована на большие объемы перевозок. 📌Флот Qatar Airways 227 пассажирских самолетов Основные типы: ⏺Boeing 787: 51 самолет ⏺Boeing 777-300ER: 57 самолетов ⏺Airbus A320-200: 29 самолетов ⏺Airbus A350 (обе модификации): 58 самолётов ⏺Airbus A380: 10 самолетов Заказы: 137 дополнительных Boeing 787 (включая 75 Boeing 787-10) Особенности: Более разнообразный флот, включает узкофюзеляжные самолеты. Некоторые самолеты приобретены из вторых рук. 📌Флот Etihad Airways Менее 100 пассажирских самолетов Основные типы: ⏺Boeing 787: 43 самолетов ⏺Airbus A320: 30 самолетов ⏺Boeing 777-300ER: 9 самолетов ⏺Airbus A380: 6 самолетов Заказы: 26 дополнительных Boeing 787 и 25 Boeing 777X Особенности: Самая маленькая из трех компаний, изменила стратегию на “бутик-авиалинию” после финансовых трудностей. ____ 🛩 специализируется только на широкофюзеляжных самолетах и делает ставку на большие объемы 🛩 имеет самый разнообразный флот и крупнейшие заказы на Boeing 787 🛩самая маленькая компания, но показывает рекордную прибыль после сокращения флота Все три авиакомпании активно обновляют флоты современными самолетами Boeing 777X, Airbus A350 и Boeing 787 Dreamliner. _________________ А кто из нихваш фаворит? Лёгкое небо #aviation#Qatar#Emirates#Etihad#compare