Alessio Treglia

everybody lies
  • Quality Assurance
  • EN blog
  • Inizio
  • Chi sono
  • Roma3 WiFi Authenticator
  • Installation Report Generator
  • Preventivi e consulenze

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

quadrispro | 2 giugno 2008

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! :D

Categorie
Ambienti di sviluppo, C, GNOME, GTK+, Guide e howto, Hardy, Programmazione e sviluppo
Commenti RSS
Commenti RSS
Trackback
Trackback

« Aggiungi un posto a tavola, che c’è un membro in più! Avviso ai naviganti, attivata la “recovery mode” per Wordpress »

10 Responses to “Scrivere un’applicazione in C con le GTK+ (Prima parte)”

  1. fabio marzocca scrive:
    3 giugno 2008 alle 12:03

    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.

    Replica
  2. Anjuta scrive:
    3 giugno 2008 alle 15:45

    Già è vero xkè hai usato quella merda di Anjuta usa Vi o Emacs!!!

    Replica
  3. fabio marzocca scrive:
    3 giugno 2008 alle 16:04

    @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… :-)

    Replica
  4. quadrispro scrive:
    3 giugno 2008 alle 16:14

    @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

    ;)

    Replica
  5. olin scrive:
    5 luglio 2008 alle 12:31

    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 ^^

    Replica
  6. quadrispro scrive:
    5 luglio 2008 alle 17:15

    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.

    Replica
  7. Alessio Treglia » Scrivere un’applicazione in C con le GTK (Seconda parte) scrive:
    7 luglio 2008 alle 17:07

    [...] una lunga attesa, ecco una nuova puntata del mio breve tutorial alla programmazione con le GTK+! Cercherò di offrirvi una panoramica sufficientemente completa sull’aspetto più importante [...]

    Replica
  8. Scaloppina scrive:
    8 luglio 2008 alle 10:30

    Per chi volesse imparare bene c+gtk, consiglio la lettura dei pdf scritti con grande passione da Gabriele Lombardi:
    http://www.gadaleta.org/listing/Corso%20di%20gtk/
    Ciao!

    Replica
  9. giogio scrive:
    26 ottobre 2009 alle 18:38

    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

    Replica
    • colossus73 scrive:
      28 ottobre 2009 alle 10:26

      Fai attenzione al percorso del file.glade. Inoltri quando chiedi aiuto è buona norma riportare gli errori nel messaggio ;)

      Ciao,
      Giuseppe

      Replica

Leave a Reply

Fare clic per cancellare la replica.

Chi sono

Se volete contattarmi, potete utilizzare l'apposito form.

Powered by Netsons

Google Friend Connect

Argomenti

Acer Aspire One Aggiornamento Ambienti di sviluppo Arte,libri & Cultura Audio Bug e problemi vari C Compiz Fusion Comunità internazionale Comunità Italiana Cose varie Debian Documentazione e wiki Esperienze Feisty Firefox GNOME GTK+ GTK Rm3WiFi Authenticator Guide e howto Gutsy Hardy Iniziative Installation Report Generator Installazione e problemi all'avvio Intrepid Jaunty Java Karmic Kernel e moduli Last.fm Linpus Lucid MSI U90 Musica Netbook Remix Notizie ONDA MT503HSA Open source & free software Planet Ubuntu-it Programmazione e sviluppo Python Siti,servizi & blog Società e media Traduzioni Ubuntu Ubuntu Developer Summit Università e scienza Viaggi Video Windows Wordpress Xfce Xubuntu

Ultimi commenti

  • Luciano Krostag su Lo sviluppo di Installation Report Generator, il merge di gtk2hs, Universe Contributor Application, e….
  • Pixel su Cinque fantastici ricordi di Londra
  • quadrispro su Ubuntu aiuta a diffondere i virus per Windows
  • gigi su Ubuntu aiuta a diffondere i virus per Windows
  • DarkJackAho su Windows 7, un silenzioso terrorista

Tutti gli articoli

RSS Planet di Ubuntu-it

  • Divilinux: Linux-2.6.33 – Nvidia driver e brightness Samsung R610
  • Dario Cavedon: Il Governo stanzia i fondi per la "banda larga". Ma li usa per una nave.
  • Dario Cavedon: L'ultimo pandoro di primavera
  • Alessio Treglia (quadrispro): Cinque fantastici ricordi di Londra
  • Ubuntu-it News: Newsletter italiana numero 9

Blogroll

  • (LS) Lorenzo Sfarra
  • Antonio Doldo Linux Blog
  • Bubuntu
  • crisis
  • Dagospia
  • Divilinux Lost Blog
  • Embrace’s Blog
  • Fabrizio Balliano
  • Fradeve OpenBlog
  • Il blog di Totò
  • Il mondo di Paolettopn
  • Leo
  • Maurizio Moriconi
  • Milo Casagrande
  • Palla's Home
  • Parzialmente scremato
  • sottovoce per non svegliare il cane
  • TuxLinux
  • Ubuntu block notes

Accedi o registrati

  • Registrati
  • Collegati
  • Voce RSS
  • RSS dei commenti
  • WordPress.org
rss Commenti RSS valid xhtml 1.1 design by jide powered by Wordpress get firefox