Sviluppo software

Come creare interfacce QT desktop e industriali

Le QT sono un framework che consente di realizzare applicazioni desktop o embedded multipiattaforma.

Attenzione! In passato usavamo il framework QT per realizzare applicativi Desktop. Secondo noi ad oggi (2019) questa modalità è stata superata da strumenti come Electron . A tal proposito vedi ad esempio il case history App Desktop Win/Mac per configurazione sistemi di sicurezza industriale basati su tecnologia radar.

Al link Qt in Use o al link QT showroom è possibile vedere alcune delle aziende che utilizzano questo framework per sviluppare i loro prodotti e degli screenshot di prodotti sviluppati con questo framework.

Le possibilità offerte da questo framework sono molte, ad esempio per quanto riguarda l'interfaccia utente si può scegliere tra tre modalità di sviluppo per la realizzazione delle interfacce utente Uomo-Macchina. Nel seguito analizziamo le tre modalità una per una.


Approccio Imperativo - Qt Widgets#

La libreria QT widgets inclusa nel framework QT permette di realizzare applicazioni con controlli e bottoni tipici delle interfacce desktop. Con questo approccio si realizzano applicazioni con un look and feel reso in modo nativo sulle varie piattaforme desktop ovvero su Windows i bottoni e gli elementi dell'interfaccia avranno lo stile di Windows, su Mac appariranno con lo stile e la grafica del Mac e su Linux avranno lo stile e la grafica del Window Manager utilizzato.

Questo approccio è molto simile a quello utilizzando in tool RAD come il designer di Visual Studio o il Borland C++ Builder ed è particolarmente indicato per creare applicazioni desktop su larga scala. Inoltre, l'ambiente di sviluppo Qt Creator fornisce un tool RAD (Rapid Application Development) chiamato Qt Designer per disegnare le interfacce con semplici operazioni di Drag & Drop.

Caratteristica interessante è la possibilità di estendere e personalizzare i componenti dell'interfaccia. Al sito QT Apps ad esempio è possibile scaricare widget aggiuntivi oltre a quelli già presenti nelle QT.

I widget delle QT sono stati progettati secondo il pattern Model View Controller che consente di organizzare la propria applicazione in modo che abbia un'interfaccia capace di gestire grandi quantità di dati in modo trasparente.

Approccio Dichiarativo - Qt Quick con QML#

Qt Quick è un modo innovativo nel campo delle applicazioni native per realizzare le interfacce utente. Lo strato di UI o di presentazione dei dati è realizzato e personalizzato con un linguaggio dichiarativo simile a CSS e a Javascript chiamato QML. I file QML possono essere realizzati in modo indipendente dallo sviluppatore o direttamente dal grafico, evitando così la necessità di dover implementare a codice le interfacce realizzate dal grafico. Con il liguaggio QML il grafico o chi progetta la UI può realizzare animazioni e transizioni esteticamente accattivanti. Inoltre, questo approccio è consigliato per realizzare interfacce scalabili per dispositivi mobili con schermi piccoli. Qt Quick utilizza direttamente la scheda video tramite le librerie OpenGL per sfruttare al massimo l'accelerazione video dei dispositivi e quindi garantire la bellezza e la fluidità delle interfacce.

Qt Quick Controls è una libreria di controlli e di widget già pronti per Qt Quick. Anche con questo approccio è possibile utilizzare il designer e l'ambiente Qt Creator per disegnare la propria interfaccia utente in modo intuitivo.

Approccio con tecnologia Web - Qt con HTML5#

Questo approccio è poco conosciuto nell'ambito dello sviluppo di interfacce con le QT e noi di Garda Informatica siamo pionieri. Pochi sanno infatti che le QT supportano la realizzazione di interfacce HTML5 in modo nativo. Questo vuol dire che è possibile realizzare un'interfaccia utente come se fosse una normale pagina web, pur mantenendo il controllo completo dell'applicazione desktop.

In questo caso l'approccio ha tutti gli stessi vantaggi di quello Dichiarativo, ma non richiede l'uso di un linguaggio ulteriore come il QML. Infatti, per realizzare l'interfaccia, è possibile utilizzare direttamente i linguaggi tipici del web come: HTML, Javascript e CSS. Questo vuol dire poter utilizzare tutte le librerie web pensate per i dispositivi mobile come ad esempio jQuery Mobile .

Il componente delle QT che rende possibile questo approccio è Qt WebKit , ovvero il motore di rendering di browser come Google Chrome o Safari. Con questo componente e le potenti API delle QT è possibile collegare con il meccanismo dei Signal e degli Slot il codice Javascript con il codice C++/Python di Qt per poter gestire anche dispositivi non comunemente supportati dai browser (es. I/O su RS232 per controllare Motori e Attuatori).

Le tecnologie HTML5 sono un elemento importante e sono molto utilizzate nei settori industriali come quello dell'automotive e dei così detti Set-top box .

Utilizzando le QT con il loro web engine è possibile sfruttare il meglio dei due mondi: interfacce realizzate con tecnologie come HTML5 affidabili, robuste e riusabili e il pieno controllo dell'hardware e del dispositivo su cui gira l'applicazione grazie alle potenti API native delle QT.

Hai qualche domanda a cui non abbiamo dato risposta? Contattaci senza impegno!

Autore: Lorenzo Chiodi
Senior software developer con più di 16 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Giovanni.

Che soluzione cerchi?#

Read more!

Newsletter

Ti è piaciuto questo articolo? Iscriviti alla newsletter

Di tanto in tanto pubblichiamo nuovi articoli come questo. Se vuoi essere avvisato lascia il tuo indirizzo e-mail di seguito.

Non invieremo mai SPAM e non condivideremo la tua e-mail con altri. Per maggiori informazioni consulta la privacy policy.

Attendere prego...

closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menushareIcona sharelinkIcona linkarrow upwardIcona arrow upward