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

Пребарај: #sawet

当前筛选 #sawet清除筛选
Addis Standard

@addisstandardeng · Post #21061 · 13.01.2026 г., 15:33

News: #Salsay_Weyane rejects claims of #Tigray’s participation in national dialogue as seven parties insist consultations must proceed Salsay Weyane Tigray (#SAWET) has rejected what it described as “deceptive” claims that Tigray is participating in #Ethiopia’s national dialogue process, arguing that the region lacks constitutional representation, remains partially occupied, and continues to face unresolved political and humanitarian challenges. The position contrasts with that of the Ethiopian National Dialogue Commission (#ENDC) and seven Tigrayan political parties, which maintain that consultations are necessary and should not be delayed. In a statement issued on Monday, SAWET said federal government assertions that Tigray is taking part in the national dialogue disregard the region’s “actual situation” and seek to obscure what it called fundamental & unresolved questions. The Ethiopian National Dialogue Commission, however, said it remains committed ... Read more: https://addisstandard.com/?p=54516

Addis Standard

@addisstandardeng · Post #21252 · 30.01.2026 г., 12:56

News: #Tigray opposition parties urge international mediators to intervene as tensions raise fears of renewed war Several Tigray-based opposition political parties have issued separate open letters warning of an imminent risk of renewed conflict in the region and calling on international mediators and guarantors of the Cessation of Hostilities Agreement (#CoHA) to take urgent preventive action. Salsay Weyane Tigray (#SaWeT) and the Tigray Independence Party (#TIP), in letters addressed to the #United_Nations, the African Union (#AU), the #United_States, the #European_Union, and other guarantors and facilitators of the Pretoria peace agreement, expressed deep concern over what they described as escalating political and military tensions that could unravel the fragile peace in Tigray. In its open letter, SaWeT warned that the region is “on the brink of an absolutely preventable disaster,” saying that a growing military confrontation threatens the collapse of ….. Read more: https://addisstandard.com/?p=54847