@stickerhut · Post #38 · 16.01.2022 г., 22:12
✨@stickerhut ドクターストーン Dr. Stone Доктор Стоун #drstone
Hashtags
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
Пребарај: #drstone
@stickerhut · Post #38 · 16.01.2022 г., 22:12
✨@stickerhut ドクターストーン Dr. Stone Доктор Стоун #drstone
Hashtags
@enjoyacg · Post #2422 · 26.03.2021 г., 03:42
《Dr. Stone 石纪元》动画续篇制作决定,更多情报请期待后续公开。 #DrStone#Anime
@advance_emp · Post #206729 · 05.03.2026 г., 09:30
🧪 Сэнку уже на подлёте. Нарисовался новый постер к самой финальной части «Доктора Стоуна». Стартует она 2 апреля. #аниме | #DrStone
@advance_emp · Post #206208 · 25.02.2026 г., 12:20
🧪 Стоун выходит на финишную. Выдали дату к финальному финалу аниме «Доктор Стоун» (Dr. Stone) и стартует он 2 апреля 2026. + 5 марта обещают ещё новости. #аниме | #DrStone
@advance_emp · Post #208845 · 07.04.2026 г., 18:41
🧪 Сравниваем «Доктор Стоун»: манга х 25 серия 4 сезона. #сравнение | #DrStone
Hashtags
@enjoyacg · Post #1806 · 03.07.2020 г., 14:59
动画《Dr.STONE 石纪元》第二季“STONE WARS”第二弹PV公开,本作将于2021年1月开播。 STAFF&CAST #DrStone#21年1月
@amomima · Post #1910 · 01.04.2026 г., 10:56
Всех с днем рождения Гены🫦🤌🤌🤌🎉🎉🎉🎉🎉🎉🎉🎉 #drstone#sengen
@amomima · Post #1843 · 22.02.2026 г., 09:48
ДА НУ НАСТРОЕНИЕ У МЕНЯ ТАКОЕ ШАЛОВЛИВО СЕНГЕНСКОЕ ГЕНСЕНСКОЕ НУ ВЫ ПОНЯЛИ🤓🤓 #sengen#drstone
@amomima · Post #1841 · 21.02.2026 г., 09:35
Морс был только у Сенку потому что школьникам нельзя пить 😂🤓🤓 #sengen#drstone
@amomima · Post #1826 · 18.02.2026 г., 09:43
Вспомнила молодость, вспомнила как трава дома пахнет!!!😩😩😩 #drstone#sengen
@stickerhut · Post #153 · 24.03.2022 г., 09:41
✨@stickerhut ドクターストーン Dr. Stone Доктор Стоун #drstone #genasagiri
Hashtags
@stickerhut · Post #59 · 25.01.2022 г., 18:52
✨@stickerhut ドクターストーン Dr. Stone Доктор Стоун #drstone #nanamiryūsui
Hashtags