Raspberry PI – Programmazione grafica con GTK+ v.3

gtk+ raspberry

“Ho acquistato un Raspberry PI: come faccio a creare e sviluppare una GUI GTK+ accattivante in linguaggio C per le mie applicazioni?”

Il link

Dedicato ai programmatori in C e C++

La creazione di una interfaccia grafica rappresenta spesso una croce per i neo-programmatori sotto Linux. Abituati male dalla Microsoft, con l’ambiente VisualStudio supercompleto, devono abbandonare le proprie certezze e cercare un nuovo sistema di sviluppo. Fortunatamente l’ambiente Qt è in grado di fornire un framework multipiattaforma che consenta di produrre interfacce valide e funzionali. Purtroppo però Qt non è gratuito per chi sviluppa in modo professionale, e l’acquisizione di licenze che consentano una redistribuzione di codice chiuso e la modifica dei sorgenti originali diviene una sezione pesante nella determinazione del costo finale del prodotto.

Fortunatamente, gli sviluppatori di Linux che hanno creato il prodotto di elaborazione grafica GIMP (GNU Image Manipulation Program) lo hanno anche dotato di un toolkit di sviluppo (chiamato GTK, GIMP Toolkit) in grado di replicare in tutto e per tutto l’ambiente di sviluppo tipico dei RAD (Rapid Application Development).

L’autore: Andrew Krause

Andrew Krause è il creatore di OpenLDev, un ambiente di sviluppo integrato che si concentra sulla gestione dei progetti C, C ++, GTK + e Gtkmm. Frequenta la Pennsylvania State University con una specializzazione in ingegneria informatica. Andrew ha otto anni di esperienza con molti linguaggi di programmazione per computer e web come C, C ++, Perl, PHP e altri. Progetta anche hardware di volo per il progetto Low Ionosphere Measurement Satellite a Penn State.

Il formato

Il libro è un vero e proprio manuale di riferimento. Nelle sue 630 pagine trovano posto 13 capitoli e 6 appendici tese a descrivere l’ambiente di sviluppo. Trattandosi di una guida, la trattazione è particolarmente curata ed approfondita, e definsice tutte le sfumature dell’infrastruttura sia a livello di interfaccia di chiamata (funzioni e metodi) che a livello di codice (C e C++). Ovviamente ciascun capitolo è dedicato all’approfondimento di un determinato widget. Si va dai campi di edit agli spin button, dalle drop-down lists ai timer, approfondendo temi come il multi-threading e la programmazione ad eventi.

Il libro è un po’ datato, ed è fermo alla versione 2 di GTK+ (ora siamo alla versione 3), ma le interfacce di chiamata e la filosofia progettuale restano comunque compatibili al 99%

A chi è diretto

Il volume non è sicuramente un testo da leggere la sera prima di addormentarsi (a meno che si soffra d’insonnia): occorre seguire passo passo le istruzioni, riscrivere gli esempi, modificare i parametri e cercarae di capire come e perché il sistema funzioni. Una base di conoscenza di C e di OOP è richiesta. Chi desidera disegnare interfacce in modo più rapido e veloce (ma decisamente meno efficiente) è avvertito, ed invitato a lavorare in Python.

GTK+ grafica raspberry

Possiamo tuttavia aggiungere che la progettazione di interfacce grafiche con GTK+ anche sotto Raspberry PI è stata di molto semplificata grazie al Glade interface designer.

Glade è uno strumento RAD che consente lo sviluppo rapido e semplice di interfacce utente per il toolkit GTK e l’ambiente desktop GNOME. Le interfacce utente progettate in Glade vengono salvate come XML e, utilizzando l’oggetto GTK di GtkBuilder, possono essere caricate dinamicamente dalle applicazioni secondo necessità. Utilizzando GtkBuilder, i file XML di Glade possono essere utilizzati in numerosi linguaggi di programmazione tra cui C, C ++, C #, Vala, Java, Perl, Python e altri. Glade è un software libero rilasciato sotto licenza GNU GPL e consente la creazione di interfacce GTK+ Raspberry PI.

gtk+ raspberry

L’accoppiata tra “Foundation of GTK+ Development” e il tool di progettazione Glade rende molto meno ripida la curva di apprendimento dell’infrastruttura, specie per chi programma su Raspberry PI, allargandone quindi la fruibilità ad un bacino di utenza decisamente più ampio.

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.