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 слични објави

Пребарај: #g27p

当前筛选 #g27p清除筛选

1 апреля - не шутка, а реальная скидка 5% на Kuycon G27-P с перфорацией! Друзья, в честь дня, когда принято разыгрывать друг друга, мы решили не шутить, а сделать вам по‑настоящему полезный подарок. Скидка 5% на одну из самых популярных моделей - Kuycon G27-P с перфорированной задней крышкой. Почему G27-P с перфорацией - это отличный выбор? 5K (5120×2880) на 27 дюймах - 218 пикселей на дюйм, текст и графика как на бумаге. 600 нит яркости и контраст 2000:1 - HDR-контент раскрывается полностью. 99% DCI‑P3, 10 бит, заводская калибровка Delta E < 2 - цвет, которому можно верить. Хаб с тремя USB‑C с зарядкой 100 Вт - один работает по Thunderbolt 4/5 и является источником подключения, 2 других работают как USB-хабы - можно подключить периферию или зарядить телефон. Алюминиевый корпус и перфорированная крышка: стильно, надёжно, отлично вентилируется. Условия акции: 📅 С 1 по 4 апреля (включительно) 🔥 Скидка 5% на Kuycon G27-P с перфорацией 🎁 Промокод: APRIL1 (введите при оформлении заказа на сайте, или просто сообщите данный промокод нашему менеджеру @kuycon_sales при оформлении заказа через TG) Как получить скидку: Перейдите на страницу монитора Выберите конфигурацию с перфорированной задней панелью, добавьте подставку, если она вам требуется При оформлении введите промокод APRIL1 👉Ссылка на Kuycon G27P с перфорацией Акция ограничена по времени и количеству. Успевайте забрать 5K‑монитор своей мечты с максимальной выгодой! #Kuycon#G27P#5K#скидка#1апреля#промокод

KUYCON G27P — обзор монитора, который меняет представление о комфортной и быстрой работе Купить монитор у официального представителя По промокоду FD - приятная скидка! В этом видео мы подробно разбираем возможности нового KUYCON G27P — универсального 27-дюймового монитора, созданного для тех, кто работает с графикой, играет, монтирует или просто хочет получить максимальный комфорт от каждой минуты за компьютером Если вы давно хотели обновить рабочее место — этот обзор поможет понять, почему G27P может стать вашим лучшим апгрейдом Наш YouTube📹 #KUYCON#G27P#G32P #deskgoals#desksetup#productivespaces#minimalsetup#deskinspiration#desktour#setupwars#creativespaces#workspaces#workstation#deskdecor#setupinspiration#dreamsetup#desklife#cleansetup#officedesign#officedecor#pcsetup#homeoffice#desk#setupinspiration#homestudio#setupgoals#minimalsetups#pcsetup#cozyspaces#cozyinteriors#cozydesign#raico#raicostore