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

Резултати

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

Пребарај: #livre

当前筛选 #livre清除筛选
Alain Soral Officiel

@alainsoral · Post #1166 · 07.03.2026 г., 09:07

⏲️ 48H pour lire ! 📚 7 livres Kontre Kulture à 🎁 -25% , pour comprendre l'actualité qui enflamme le Moyen-Orient ... loin des poncifs des médias de grands chemins. 📲 Utilisez le code promo ➡️ GUERRE 25 ⬅️ 🎁 Promotion valable pour chacun de ces livres sur https://kontrekulture.com/?asv=20 #Promotion#Guerre#Iran#Israel#USA#Livre

Alain Soral Officiel

@alainsoral · Post #1100 · 12.12.2025 г., 08:39

🕯️ Offrez à votre famille un Noël enchanté avec le 📚 "Coffret Famille" des éditions Kontre Kulture 👇 https://kontrekulture.com/produit/coffret-pour-la-famille/ Découvrez les "Contes de Russie" de Léon Tolstoï, les "Fables" intemporelles de Jean de La Fontaine et les "Contes" magiques de Charles Perrault. Un trésor littéraire pour petits et grands, disponible dès maintenant pour des fêtes inoubliables ! ➕ CADEAU 🎁 "La Ferme des animaux" de George Orwell #Noel#Conte#Famille#Enfant#Livre

Tutto Elezioni

@tuttoelezioni · Post #1028 · 19.05.2025 г., 05:15

#Portogallo🇵🇹 #Parlamentari Risultati parziali. Sezioni scrutinate: 99,23%. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 32,10% 🟪 Partito Socialista (#PS|S&D): 23,38% ⬛️ Basta! (#Chega|Patriots-eu): 22,56 🟦 Iniziativa Liberale (#IL|RE): 5,53% 🟩 Libero (#Livre|G/EFA): 4,20% 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 3,03% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1025 · 18.05.2025 г., 21:00

#Portogallo🇵🇹 #Parlamentari Risultati parziali. Sezioni scrutinate: 95,67%. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 33,32% ⬛️ Basta! (#Chega|Patriots-eu): 23,20% 🟪 Partito Socialista (#PS|S&D): 23,12% 🟦 Iniziativa Liberale (#IL|RE): 4,87% 🟩 Libero (#Livre|G/EFA): 3,40% 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 2,78% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1022 · 18.05.2025 г., 20:46

#Portogallo🇵🇹 #Parlamentari Risultati parziali. Sezioni scrutinate: 93,42%. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 33,74% ⬛️ Basta! (#Chega|Patriots-eu): 23,52% 🟪 Partito Socialista (#PS|S&D): 23,03% 🟦 Iniziativa Liberale (#IL|RE): 4,63% 🟩 Libero (#Livre|G/EFA): 3,20% 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 2,74% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1020 · 18.05.2025 г., 20:12

#Portogallo🇵🇹 #Parlamentari Risultati parziali. Sezioni scrutinate: 84,56%. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 35,45% ⬛️ Basta! (#Chega|Patriots-eu): 23,60% 🟪 Partito Socialista (#PS|S&D): 22,78% 🟦 Iniziativa Liberale (#IL|RE): 4,11% 🟩 Libero (#Livre|G/EFA): 2,61% 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 2,50% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1017 · 18.05.2025 г., 20:00

#Portogallo🇵🇹 #Parlamentari Risultati parziali. Sezioni scrutinate: 77,73%. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 36,11% ⬛️ Basta! (#Chega|Patriots-eu): 23,62% 🟪 Partito Socialista (#PS|S&D): 22,87% 🟦 Iniziativa Liberale (#IL|RE): 3,84% 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 2,48% 🟩 Libero (#Livre|G/EFA): 2,39% @TuttoElezioni

Alain Soral Officiel

@alainsoral · Post #1085 · 28.11.2025 г., 11:03

🎁 Les coffrets de Noël 🎄 enfin disponibles chez 📙 Kontre Kulture ! Santé, Histoire, religions, ... Découvrez les 📚 16 coffrets de Noël Kontre Kulture - classés par thèmes - et destinés à étancher toutes les curiosités et à satisfaire toutes les bourses. Profitez de vos longues soirées d'hiver pour élever votre pensée grâce à des livres pertinents, subversifs et inspirants ! 📖 Bonne lecture ! 🎁 Commander les 📚16 Coffrets les plus subversifs de Noël sur 👇 https://kontrekulture.com/categorie-produit/coffrets-de-noel/ #Noel#livre#litterature#coffret#cadeau#culture#subversif

Tutto Elezioni

@tuttoelezioni · Post #957 · 17.05.2025 г., 10:29

#Sondaggi #Portogallo🇵🇹 #Parlamentari Sondaggio di Pitagórica. Data: 12-15 maggio 2025. Campione: 810 persone. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 33,2% 🟪 Partito Socialista (#PS|S&D): 25,6% ⬛️ Basta! (#Chega|Patriots-eu): 19,2% 🟦 Iniziativa Liberale (#IL|RE): 5,8% 🟩 Libero (#Livre|G/EFA): 5,1% 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 3,0% 🟥 Blocco di Sinistra (#BE|LEFT): 2,2% 🟩 Persone-Animali-Natura (#PAN|G/EFA): 1,3% Altri: 4,6% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1035 · 20.05.2025 г., 14:59

#Portogallo🇵🇹 #Parlamentari Seggi assegnati. 🟦 Alleanza Democratica (#AD|PPE; include #PSD|PPE e #CDS|PPE): 91 ⬛️ Basta! (#Chega|Patriots-eu): 60 🟪 Partito Socialista (#PS|S&D): 58 🟦 Iniziativa Liberale (#IL|RE): 9 🟩 Libero (#Livre|G/EFA): 6 🟥 Coalizione Democratica Unitaria (#CDU|LEFT): 3 🟥 Blocco di Sinistra (#BE|LEFT): 1 🟩 Persone-Animali-Natura (#PAN|G/EFA): 1 🟩 Insieme per il Popolo (#JPP|Regionalisti madeirensi): 1 Maggioranza: 116 @TuttoElezioni

12
ПретходнаСтраница 1 од 2Следна