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

Резултати

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

Пребарај: #hôtel

当前筛选 #hôtel清除筛选
Voir de ses propres yeux

@voir_yeux · Post #12264 · 25.03.2026 г., 20:52

🇫🇷 Un incendie s’est déclaré dans l’hôtel Bristol, à proximité du palais de l’Élysée à Paris, faisant un blessé et entraînant l’évacuation de 400 personnes, a rapporté BFMTV, citant le maire du VIIIe arrondissement. #paris#hôtel#incendie

Voir de ses propres yeux

@voir_yeux · Post #12032 · 08.03.2026 г., 08:22

🇱🇧🇮🇱Au moins quatre personnes ont été tuées et dix autres ont été blessées dans une frappe israélienne contre un hôtel du centre de Beyrouth, a rapporté la chaîne de télévision Al Jazeera, citant le ministère libanais de la Santé. Quatre personnes ont été tuées et dix autres ont été blessées dans une frappe israélienne contre un appartement de l'hôtel Ramada à Beyrouth, est-il indiqué. #israël#liban#frappes#hôtel

Voir de ses propres yeux

@voir_yeux · Post #11940 · 28.02.2026 г., 19:04

🇦🇪 Un missile est tombé à côté de l’hôtel cinq étoiles Fairmont The Palm à Dubaï, provoquant un violent incendie sur place, a rapporté à TASS un témoin oculaire. Il y a eu une forte explosion près de l’hôtel, un incendie s’est déclaré sur place et un énorme panache de fumée noire s’élève. La défense aérienne continue de fonctionner, a déclaré l’interlocuteur de l’agence. #dubaï#missile#hôtel

Voir de ses propres yeux

@voir_yeux · Post #12465 · 08.04.2026 г., 17:43

🇵🇰🇺🇸🇮🇷 L’hôtel Serena à Islamabad se prépare à accueillir des délégations des États-Unis et de l’Iran, attendues dans la capitale pakistanaise pour des négociations. C’est ce qu’a indiqué à un correspondant de TASS un employé de l’établissement. #hôtel#délégations#pourparlers