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

Резултати

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

Пребарај: #endirect

当前筛选 #endirect清除筛选
Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #584 · 19.12.2025 г., 10:10

🔴#EnDirect : Programme annuel « Bilan de l’année avec Vladimir Poutine ». Au cours de l’événement, le Chef de l’État dressera le bilan de l’année écoulée et répondra aux questions des journalistes et des citoyens du pays. Les réussites majeures et les défis auxquels la Russie est confrontée seront abordés. 🔴Ruptly 🔴Kremlin.News (en anglais)

Hashtags

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #232 · 06.06.2025 г., 13:53

🔴#EnDirect : Session spéciale de discussion « Vérification responsable des faits à l’ère de la post-vérité : nouvelles opportunités de coopération » dans le cadre du Global Digital Forum, avec la participation du Département de l'information et de la presse du Ministère russe des Affaires étrangères. Parmi les intervenants : la porte-parole la diplomatie russe, Maria Zakharova 🔴Ruptly 🔴Global Digital Forum

Hashtags

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #216 · 28.05.2025 г., 12:28

🔴#EnDirect : Discours de Sergueï Lavrov, Ministre des Affaires étrangères de la Fédération de Russie, lors de la XIIIe Réunion internationale des Hauts Représentants chargés des questions de sécurité 🔴Ruptly 🔴Site web du MAE russe

Hashtags

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #210 · 26.05.2025 г., 13:46

🔴#EnDirect : Allocution de Sergueï Lavrov, Ministre des Affaires étrangères de la Fédération de Russie, lors de la réception à l’occasion de la Journée de l’Afrique 🔴Site web du MAE russe

Hashtags

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #40 · 03.04.2025 г., 11:12

🔴#EnDirect : Conférence de presse de Sergueï Lavrov et des participants à la réunion Russie – Alliance des États du Sahel au niveau des ministres des Affaires étrangères 🔴Ruptly 🔴Site web du MAE russe

Hashtags

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #294 · 18.06.2025 г., 13:35

🔴#EnDirect : Discours de Vice-ministre des Affaires étrangères de la Fédération de Russie, Alexandre Pankine, lors de la session de discussion du Forum économique international de Saint-Pétersbourg 2025« L’ordre international de Yalta et de Potsdam : leçons du passé ou mémoire du futur ? » 📌 Saint-Pétersbourg, 18 juin 🔴Ruptly (en anglais) 🔴Site web du SPIEF (en anglais) *** 🔴#EnDirect : Discours de Vice-ministre des Affaires étrangères de la Fédération de Russie, SergueïRyabkov, lors de la session de discussion du Forum économique international de Saint-Pétersbourg 2025 « Russie-Brésil » 📌 Saint-Pétersbourg, 18 juin 🔴 Site web du SPIEF (en anglais) #SPIEF2025

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #464 · 20.09.2025 г., 17:45

🔴#EnDirect : Regardez la finale du concours international de musique #Intervision Suivez les liens ci-dessous 👇 🔗https://www.youtube.com/live/Na-JJ_QK624?si=-8EA58skO-o7DhoE 🔗https://www.1tv.ru/shows/intervidenie 🔗https://vkvideo.ru/video-220754053_456243806 #Intervision2025