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

Резултати

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

Пребарај: #piazza

当前筛选 #piazza清除筛选
Savino Balzano

@savinobalzano · Post #334 · 06.03.2023 г., 14:05

«Maestà il popolo ha fame e non ha più pane» «Se non hanno più pane che mangino l'antifascismo» #politica#informazione#antifascismo#fascismo#sinistra#manifestazione#piazza#EllySchelin#PartitoDemocratico#Italia

Savino Balzano

@savinobalzano · Post #968 · 06.04.2025 г., 08:47

https://x.com/SavinoBalzano/status/1908802475810775512?t=rm6rSLpAqNAIyaoqODxV3A&s=19 La piazza di ieri è stata un grande successo, e il Paese — la parte sana dell’#Italia, la stragrande maggioranza — deve essere grato a chi l’ha organizzata. Avevamo bisogno di lanciare un urlo di liberazione, di indignazione, di rivendicazione. La gente voleva affermare il proprio desiderio di #pace, l’opposizione alla folle corsa al riarmo. Voleva denunciare le atrocità della #guerra, e quella #piazza ha permesso a tantissime persone di farlo. Ieri sera, l’informazione ha minimizzato la portata dell’evento, arrivando persino a mettere l’accento sulla partecipazione di qualche soggetto strampalato. Bene: è la prova che le istanze di quel popolo erano giuste, vere. Se i media tentano di oscurarle o denigrarle — in un Paese in cui domina un’informazione disinformante di regime — non servono altre conferme. E non è finita, vedrete: partirà qualche inchiesta su chi ha organizzato i pullman, ad esempio. Come se fosse un crimine. L’indecenza sarebbe stata ricorrere a risorse pubbliche, magari del Comune di #Roma. Ma queste cose accadono altrove. Ci tengo a ricordare che anche a #Milano una piazza si è riempita, affermando i principi della pace e dell’interesse nazionale: anche a loro è giusto rivolgere gratitudine. Detto ciò, c’è un’ipocrisia di fondo che #Conte non può continuare a ignorare, perché è grande come un grattacielo. Quella piazza è incompatibile con il #PartitoDemocratico. #Schlein poteva anche mandare tutti i parlamentari del mondo, ma quelle istanze sono semplicemente inconciliabili con il partito che guida: l’acqua da una parte, l’olio dall’altra. Conte non può continuare a puntare su temi assolutamente secondari per non rompere, perché qui si parla di una questione sistemica, esistenziale: il #PD è il partito della guerra, delle armi, di questa Unione Europea. Persino più dell’ignavo partito della premier. Se per Conte un dialogo è possibile con Schlein, allora dovrebbe esserlo anche con #Tajani. Strano che escluda quello con #Salvini — lo ha escluso anche ieri sera da #Padellaro, a domanda diretta. Una domanda che mi sembrava di assoluto buon senso. Fossi in Conte, chiamerei Salvini oggi stesso: se la pace è davvero la priorità assoluta per i nostri figli, mi pare un interlocutore decisamente più opportuno di chi vota certe risoluzioni al #ParlamentoEuropeo. Risoluzioni che non contano nulla, sia chiaro: l’#UE è un sistema di ingegneria istituzionale che con la #democrazia non ha nulla a che fare. Un po’ come il PD, che la democrazia ce l’ha solo nel nome. E a proposito: che cosa hanno votato il 2 aprile? "la scelta del regime russo di minare l'ordine internazionale basato su regole e l'architettura di sicurezza dell'Europa e di dichiarare guerra ai paesi europei o di cercare di destabilizzarli al fine di realizzare la sua visione imperialista del mondo, rappresentano la minaccia più grave e senza precedenti per la pace nel mondo (...). L'Ucraina deve essere dotata delle capacità militari necessarie per tutto il tempo che le servirà per riportare una vittoria militare decisiva (...)" Caro Conte, potrai anche trovare con questa gente un’intesa sui colori della segnaletica stradale o sulla riforma del catasto, ma difficilmente potrai mettertici d’accordo su un tema come quello per cui hai chiamato a raccolta la piazza di ieri a Roma. E dunque la domanda che ti rivolgo — ringraziando ancora te e la tua comunità per quanto fatto ieri — è: quanto è importante per te la pace? cosa sei disposto a sacrificare e rivedere? Questo è il punto. Il resto sono chiacchiere.

Savino Balzano

@savinobalzano · Post #830 · 29.11.2024 г., 14:05

https://x.com/SavinoBalzano/status/1862495129740714239?t=wrTMSCyGVhrBwkE8c_2zbQ&s=19 Oggi sono stato ospite di Aldo Pecora su Radio1Rai e abbiamo parlato di #lavoro e di #ScioperoGenerale. Il #Sindacato ha bisogno di recuperare credibilità: la sua postura tende a cambiare a seconda di chi governa e questo non è serio. Inoltre si dovrebbero scegliere meglio i "compagni" di piazza: non mi sembra ragionevole protestare contro la manovra, rivendicare la #SanitàPubblica, insieme a chi ha falcidiato il #SSN facendogli mancare circa 40 miliardi in 10 anni; non mi sembra convincente protestare contro la #precarietà, insieme a quelli che hanno ideato e realizzato il #JobsAct. Inoltre, in #piazza si guarda il dito e non la luna: se non mettiamo seriamente in discussione le regole dell'#EuroZona, i soldi per rinnovare i contratti non ce li avrà mai nessuno. #radio#rai1