Il tuo primo widget per Plasma 6: C++, QML e il pattern Observer

🦎 Ciao geeko! Il 14 ottobre 1996 uno studente di nome Matthias Ettrich annunciò la nascita di un “Kool Desktop Environment” per Linux; trent’anni dopo KDE è ancora in piena attività, e un compleanno così merita di essere festeggiato come si deve. Buon trentesimo compleanno, KDE! La comunità raccoglie le iniziative per l’anniversario nella pagina KDE at 30. Crediti immagine: il logo di KDE proviene dal press kit di KDE (LGPL). KDE® e il logo K Desktop Environment® sono marchi registrati di KDE e.V. Questo articolo è il mio regalo di compleanno: il tutorial che avrei voluto trovare quando ho provato a scrivere il mio primo widget per Plasma e mi sono perso nella documentazione. Costruiremo un piccolo widget per Plasma 6 con un modello in C++ e una vista in QML, cioè un pulsante che conta i clic: sono circa cento righe di codice, ma il progetto si compila, si installa, funziona nel pannello e ha perfino un test unitario. Lungo la strada incontreremo quattro concetti che chi sviluppa con Qt e KDE usa ogni giorno, cioè i segnali, gli slot, il pattern Observer e l’MVC. Il codice completo è su GitHub: ilmanzo/plasma-hello-counter. ...

2 ottobre 2026 Â· Andrea Manzini

Testing Headless di Applicazioni GUI PySide/PyQt con pytest-qt

🤓 Introduzione Il testing manuale delle applicazioni GUI può diventare noioso e soggetto a errori con l’aumento delle funzionalità e della complessità. Il testing headless offre una soluzione automatizzando le interazioni dell’interfaccia utente (UI) senza la necessità di un display fisico. Questo approccio consente un’esecuzione più rapida dei test, una migliore ripetibilità e una perfetta integrazione con le pipeline di continuous integration e continuous delivery (CI/CD). In questo post esploreremo come sfruttare pytest-qt, un potente framework per il testing headless di applicazioni PySide/PyQt. ...

22 maggio 2024 Â· Andrea Manzini
Buy Me a Coffee at ko-fi.com Buy Me A Coffee

This site does not use cookies or collect any personal data. © 2026 Andrea Manzini.