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

Пребарај: #réflexion

当前筛选 #réflexion清除筛选
Egountchi Behanzin Officiel

@egountchibehanzinofficiel · Post #7667 · 22.11.2024 г., 18:28

ℹ️Mali 🇲🇱, Affaire Choguel Kokalla Maiga Depuis plusieurs jours, en tant que leader d'opinion et président de la La LDNA, je suis interpellé par la polémique entourant l'affaire Choguel Maïga. Je reçois de nombreux messages me demandant de réagir à cette situation. Cependant,Il est déconcertant de constater que certains choisissent de faire des vidéos soi-disant analytiques pour dénigrer et vilipender Choguel Maïga, comme nous le voyons sur les réseaux sociaux ces derniers temps. Ce type de comportement ne fait que servir les intérêts de nos ennemis, qui attendent avec impatience que des Africains, dans une course effrénée aux vues et aux "likes", s'attaquent à l'un des nôtres en usant de toutes sortes d'insultes. Réfléchissons ensemble et agissons avec sagesse. Il est essentiel de prendre du recul et d'analyser les conséquences de nos actes avant de céder à la réaction impulsive. Je m'engage à réagir en temps voulu, mais pour l'heure, je préfère laisser ces pseudo-analystes et politologues s'exprimer comme des "grilleurs d'arachides", contribuant ainsi à creuser davantage la fracture et la division politique au Mali en lynchant un ancien Premier ministre. Proverbe togolais : " On ne saute pas par-dessus le serpent pour prendre un bâton pour le tuer". Comprendra qui pourra. Ma dernière vidéo indisponible sur YouTube: ➡️https://youtu.be/1ToRcUiXgXQ?feature=shared #Mali#Unité#Réflexion#Politique REJOIGNEZ LA RÉSISTANCE SUR TELEGRAM. 🔺Pour les numéros français : https://t.me/egountchibehanzinTV 🔻Pour les numéros internationaux : https://t.me/egountchibehanzinTV @egountchibehanzinTVV

ÉTIENNE CHOUARD

@chouard · Post #967 · 03.12.2025 г., 12:10

Le système de domination parlementaire est-il une véritable démocratie, ou une simple escroquerie ? Une constitution devrait protéger contre les abus de pouvoir, en plaçant le peuple au-dessus des pouvoirs. Est-ce le cas aujourd'hui ? Réfléchissez-y. #Démocratie#Politique#Constitution#Pouvoir#Citoyen#Réflexion Prise de conscience de la priorité constituante à suivre sur chouard . org https://www.facebook.com/reel/1914066229485282