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

Резултати

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

Пребарај: #bronze

当前筛选 #bronze清除筛选
Interesting Planet 🌍

@interesting_planet_facts · Post #788 · 20.09.2025 г., 18:11

🌎 Buried in China’s Sanxingdui site, enormous bronze masks with exaggerated features were uncovered in 1986. Dating back over 3,000 years, these artifacts don’t resemble any known Chinese culture. Archaeologists found more than 1,000 unique objects, including human statues and jade blades, in sacrificial pits at the site. ✨ #archaeology⚡#mystery⚡#bronze 👉subscribe Interesting Planet ​

Voir de ses propres yeux

@voir_yeux · Post #12022 · 07.03.2026 г., 20:21

🇷🇺🇮🇹 Le skieur alpin russe Alexeï Bougaïev a remporté la médaille de bronze dans l'épreuve de descente aux Jeux paralympiques en Italie. Le Russe a réalisé un temps de 1 minute 18,94 secondes. Le Suisse Robin Cuche a pris la première place en 1 minute 17,79 secondes, devant le Français Arthur Bauchet, deuxième en 1 minute 18,40 secondes. #handisport#ski#russie#bronze

Voir de ses propres yeux

@voir_yeux · Post #12020 · 07.03.2026 г., 16:37

🇷🇺🇮🇹 La skieuse alpine russe Varvara Vorontchikhina a décroché la médaille de bronze dans l'épreuve de descente aux Jeux paralympiques en Italie. La Russe a réalisé un temps de 1 munite 24,47 secondes. La Suédoise Ebba Aarsjoe a remporté la course en 1 minute 22 secondes, devant la Française Aurélie Richard, deuxième en 1 minute 23,71 secondes. #handisport#ski#russie#bronze