Scrivere un’applicazione in C con le GTK+ (Prima parte)

Quello che segue è un breve tutorial introduttivo alla programmazione in ambiente GNOME con le librerire GTK+. Benchè sia possibile scrivere applicazioni con le GTK+ in diversi linguaggi per i quali vengono forniti binding sempre aggiornati, ho scelto il C come linguaggio per gtk-foobar, l’applicazione d’esempio di questo tutorial, poiché garantisce maggiori potenza e stabilità.

Soddisfiamo le dipendenze

Prima di installare le dipendenze necessarie alla nostra nuova applicazione, è bene scegliere i nostri strumenti con grande cura: personalmente mi trovo benissimo con Anjuta IDE, un ambiente di sviluppo open source completo di tutto ciò che ci servirà in questo tutorial (e non solo). Per installarlo su Ubuntu 8.04 «Hardy Heron» è sufficiente digitare il seguente comando in una finestra di terminale:

sudo aptitude install anjuta

Ecco uno screenshot dell’ambiente di sviluppo:

Una schermata di Anjuta IDE

Per quanto riguarda le dipendenze, se si è interessati solo allo sviluppo con le librerie GTK+ (complete di supporto per l’internazionalizzazione) è sufficiente digitare questo comando:

sudo aptitude install build-essential libgtk2.0-dev glade-3 autotools-dev libtool intltool intltool-debian

Per la documentazione è consigliato installare lo strumento Devhelp, corredato del reference manual delle librerie:

sudo aptitude install devhelp libgtk2.0-doc

Iniziamo un nuovo progetto

Con Anjuta non serve preparare alcun Makefile né generare dipendenze di nessun tipo: basta andare su Applicazioni -> Programmazione -> Anjuta IDE e fare clic su File -> Nuovo -> Progetto. Verrà avviato un assistente e alla richiesta di informazioni sul tipo di progetto bisogna selezionare l’icona raffigurante il simbolo delle librerie GTK+, come nella seguente schermata di esempio:

Selezionare il tipo del nuovo progetto

Ora siamo pronti per iniziare!

Oh GUI, mon amour!

Cominciamo subito con la preparazione dell’interfaccia grafica dell’applicazione: facendo clic sul file gtk_foobar.glade presente nella cartella del progetto verrà avviata una versione integrata del designer di interfacce Glade, con il quale sarà possibile inserire tutti gli elementi grafici che desideriamo. Tenete conto delle seguenti considerazioni:

  1. Se siete così smaniosi da voler visualizzare subito la finestra vuota dell’applicazione, basta premere «F11» per generare il progetto, dunque «F3» per avviare il programma una volta terminata la compilazione.
  2. Durante l’editing dei widget grafici è sempre meglio adottare delle convenzioni per i nomi, in modo da ricordare facilmente gli elementi dell’interfaccia durante lo sviluppo delle funzioni callback associate ai vari eventi generati da essi. Questa è una raccomandazione importante: onde evitare stupidi errori di compilazione, pensate bene prima di assegnare i nomi a tali oggetti, in alternativa potete sempre lasciare quelli di default.
  3. Per quanto riguarda la disposizione degli elementi nella finestra, il seguente esempio fa schifo:
    L\'interfaccia grafica di gtk-foobar
    Da sempre è un mio grande limite: non sono bravo a disegnare interfacce di alcun tipo. Sono sicurissimo che saprete fare di meglio (mandatemi pure i vostri file .glade via mail, i migliori verranno pubblicati).
  4. Se l’esempio precedente dovesse risultare graficamente migliore di qualsiasi interfaccia che abbiate mai elaborato con Glade, in tal caso (mi duole dirvelo) non esiste Visual Basic che possa salvarvi!

E con questo la prima puntata termina qui. Nella prossima andremo a gestire gli eventi scatenati dai widget posizionati nella finestra principale del programma, inoltre cominceremo a scrivere il codice necessario al funzionamento dell’applicazione. Insomma: non perdetevela! 😀

Facebook Twitter Linkedin Plusone Pinterest Email

11 pensieri su “Scrivere un’applicazione in C con le GTK+ (Prima parte)

  1. Bene. Anche se preferisco non usare “frocerie” come Anjuta che confondo le idee e aggiungono inutili file al progetto.

    Vai di gEdit per il codice e gli strumenti di “make” per la compilazione!
    In questo modo riesci anche a capire cosa stai facendo con tutti i vari file che costruiscono il progetto. Anjuta nasconde allo sviluppatore il cuore del meccanismo.

    IMHO.

  2. @Anjuta–> Non ho detto che anjuta è una “merda”, anzi è un’applicazione molto complessa, che comunque ha fatto sudare gli sviluppatori. E’ Open Source, e per questo dobbiamo sempre ringraziare con grande rispetto chi fa questi lavori e li mette a disposizione di tutti.

    Ho solo detto che preferisco non usarlo… 🙂

  3. @fabio: la mia è stata una scelta dettata dalla voglia di semplificare la vita di tutti coloro che, passando da Windows a Linux, si trovano spiazzati di fronte alle differenze fra gli strumenti di sviluppo: da Visual Studio .NET a gedit il salto non è proprio immediato… il primo “contatto” con il nuovo sistema, anche per chi sviluppa per/su Windows (e che dunque si presuma abbia delle conoscenze più approfondite rispetto a un utente “medio”) non è sempre indolore.

    @Anjuta: sono della stessa idea di Fabio, stiamo parlando dell’ambiente di sviluppo predefinito di GNOME, completamente open source, che mette a disposizione dell’utente molti strumenti utili a semplificare il lavoro.

    De gustibus non disputandum est

    😉

  4. ma perchè ti sei fermato qui?
    penso che tutti riescano a disegnare una cavolo di interfaccia grafica
    hai tralasciato la parte più importante… quella del codice!! 🙁 🙁

    a quando la seconda parte???
    sono troppo curioso / voglioso di imparare ad usare finalmente c con gtk
    spero di ricevere tue notizie ^^

  5. olin, l’articolo è quasi pronto e sento cmq di dovermi scusare per il ritardo con te e con tutti i miei lettori che attendono la seconda puntata.

    Purtroppo sono letteralmente sommerso dai miei impegni universitari ultimamente (avrai notato che scrivo anche meno articoli :)), prometto di pubblicare la seconda parte il prima possibile.

  6. Pingback: Alessio Treglia » Scrivere un’applicazione in C con le GTK (Seconda parte)

  7. Sto iniziando a smanettare con anjuta su ubuntu , in particolare trovo queste difficoltà:
    usando g++ e gtkbuilder con include gtkmm e libglademm, il programma viene compilato con successo ma non riesce aleggere il file.glade.
    potete aiutarmi?
    non trovo documentazione deguata per questo problema e neanche se cerco di ricompilare con anjuta un progetto esistente.
    grazie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *