@hkdmovement · Post #7453 · 01.06.2024 г., 04:32
#NewZealand#June4 and #June12 assembly. #8964 #neverforget8964 #612 #ccpchina#freehk
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
Пребарај: #june12
@hkdmovement · Post #7453 · 01.06.2024 г., 04:32
#NewZealand#June4 and #June12 assembly. #8964 #neverforget8964 #612 #ccpchina#freehk
@hkdmovement · Post #8018 · 13.06.2025 г., 03:30
六年前的今天,香港人站在街頭,為自由與民主發聲。六年過去,世界各地的港人仍然緊守信念,堅持記憶不被抹去。 今年,多地舉辦紀念活動: 列斯 :「傘陣下相逢,毋忘六一二」擺街站 倫敦 & 曼徹斯特:雙城接力紀念行動 多倫多 :「612六周年祈禱會」@ North York Mel Lastmann Square 台北:「612行動—長夜未歇,暮光不滅」遊行 我們不曾遺忘,也不曾停止追尋公義。即使路途艱難,仍然並肩而行。 #612六周年#毋忘六一二#香港#自由#堅持到底 6 years ago, Hongkongers stood together on the streets, raising their voices for freedom and democracy. Today, despite challenges, Hongkongers worldwide remain steadfast in keeping the memory alive. This year, commemorative events are being held across different cities: Leeds – "Never Forget June 12" street booth London & Manchester – Relay remembrance events Toronto – "6th Anniversary Prayer Gathering" @ North York Mel Lastmann Square Taipei – "June 12 Action—The Long Night Continues, The Light Never Fades" march We have never forgotten, and we will never stop seeking justice. The road is tough, but we stand together. #June12#612Anniversary#HongKong#Freedom#StayStrong