Alessio Treglia

everybody lies
  • en blog
  • rss
  • Inizio
  • Chi sono
  • pyRisk
  • Roma3 WiFi Authenticator
  • Contattami

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 »

8 risposte

Bene. Anche se preferisco non usare "frocerie" come Anjuta che

fabio marzocca | 3 Giugno 2008 | 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.

[Reply]

Già è vero xkè hai usato quella merda di Anjuta

Anjuta | 3 Giugno 2008 | 15:45

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

[Reply]

@Anjuta--> Non ho detto che anjuta è una "merda", anzi

fabio marzocca | 3 Giugno 2008 | 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… :-)

[Reply]

@fabio: la mia è stata una scelta dettata dalla voglia

quadrispro | 3 Giugno 2008 | 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

;)

[Reply]

ma perchè ti sei fermato qui? penso che tutti riescano a

olin | 5 Luglio 2008 | 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 ^^

[Reply]

olin, l'articolo è quasi pronto e sento cmq di dovermi

quadrispro | 5 Luglio 2008 | 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.

[Reply]

[...] una lunga attesa, ecco una nuova puntata del mio

Alessio Treglia » Scrivere un’applicazione in C con le GTK (Seconda parte) | 7 Luglio 2008 | 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 [...]

Per chi volesse imparare bene c+gtk, consiglio la lettura dei

Scaloppina | 8 Luglio 2008 | 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!

[Reply]

Lascia un commento

Puoi usare questi tag : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Click to cancel reply

Sponsor

Chi sono


Per contattarmi mandami una mail

Argomenti

Aggiornamento Ambienti di sviluppo Audio Bug e problemi vari C Cazzate varie Comunità Italiana Documentazione e wiki Feisty Firefox GNOME GTK+ GTK Rm3WiFi Authenticator Guide e howto Gutsy Hardy Installazione e problemi all'avvio Intrepid Java Kernel e moduli Last.fm Musica Notizie Open source & free software Planet Ubuntu-it Programmazione e sviluppo Python Siti,servizi & blog Società e media Traduzioni Ubuntu Università e scienza Viaggi Video Windows Wordpress Xubuntu

Ultimi commenti

  • quadrispro su Misura la censura!
  • Demiurgo su Misura la censura!
  • ugaciaka su Misura la censura!
  • cristian_c su Misura la censura!
  • DktrKranz su Di ritorno in ritorno

Tutti gli articoli

Ubuntu in Italiano

Versione a 32 bit

RSS Planet di Ubuntu-it

  • Divilinux: Iphone vs Diamond HTC
  • Lorenzo Sfarra (twilight): Django 1.0 Rilasciato
  • Milo Casagrande: Quote of the Day
  • Alessio Treglia (quadrispro): Misura la censura!
  • Milo Casagrande: Mini Dell

Foto su Flickr.com

trk 015

Blogroll

  • (LS) Lorenzo Sfarra
  • Bubuntu
  • crisis
  • Dagospia
  • Divilinux Lost Blog
  • Embrace’s Blog
  • Fradeve OpenBlog
  • Il blog di Totò
  • Il mondo di Paolettopn
  • Leo
  • Maurizio Moriconi
  • Milo Casagrande
  • Parzialmente scremato
  • TuxLinux
  • Ubuntu block notes

Licenza

I contenuti di questo sito sono coperti da licenza copyleft Creative Commons


Creative Commons Attribution-ShareAlike 2.5 Italy

Powered links

Il Bloggatore
BlogItalia.it - La directory italiana dei blog
Sfondi Desktop Classifica di siti - Iscrivete il vostro!
directory blog eXplicatum - Aggregatore online di Notizie / Blog / Feed RSS
Blogger Italiani

Ascolti recenti

  • MSTRKRFT – Work On You
  • Daft Punk – Short Circuit
  • System of a Down – Chop Suey
  • Todd Edwards – Never Far From You
  • SebastiAn – Maybe Tomorrow (Cover)
  • Moby – Porcelain
  • Justice Vs Simian – We Are Your Friends (Original Mix)
  • Guns N' Roses – Patience
  • Mylo – Drop the Pressure
  • Hi_Tack – Say Say Say (Waiting 4 U)

Accedi o registrati

  • Registrati
  • Collegati
  • Voce RSS
  • RSS dei commenti
  • WordPress.org

RSS alessio and friends on identi.ca

  • milo: Trying Deskbar Applet... 1 2 3 check check...
  • milo: Trying Google Chrome
  • alessio: Tornato da Barcellona, e per la prima volta ho avuto nostalgia del mangereccio italiano...
  • milo: Wonderful weekend, fantastic tortellini, too much wine, back to reality now...
  • alessio: Barcellona, I'm coming!
  • milo: Back to Boring Work
  • milo: Still Alive™
  • alessio: 2 bugfixes again, yeah!!!!!
  • alessio: I hope to upload at least 10 packages before Intrepid development ends.
  • alessio: six packages uploaded at the moment: WOW! https://launchpad.net/~quadrispro/+related-software
rss Commenti RSS valid xhtml 1.1 design by jide powered by Wordpress get firefox