Alessio Treglia

everybody lies
  • Quality Assurance
  • EN blog
  • rss
  • Inizio
  • Chi sono
  • pyRisk
  • 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 »

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.

Risposta

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

Risposta

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

Risposta

@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

;)

Risposta

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

Risposta

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.

Risposta

[...] 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!

Risposta

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

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à Italiana Cose varie Documentazione e wiki Feisty Firefox GNOME GTK+ GTK Rm3WiFi Authenticator Guide e howto Gutsy Hardy Installation Report Generator Installazione e problemi all'avvio Intrepid Jaunty Java Karmic Kernel e moduli Last.fm Linpus Musica Netbook Remix 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 Xfce Xubuntu

Ultimi commenti

  • Ubuntu 8.10 Intrepid Ibex - post riassuntivo | FDS su Ubuntu 9.04, chiamiamola per nome
  • H4TtoRy su Cooooosa?? Un altro netbook??
  • Alessio Treglia » La beta è servita « Il mondo di Paolettopn su La beta è servita!
  • Carlo su Il mio nuovo laptop: Acer Aspire One A150
  • riccardo su Ubuntu 9.04 Netbook Remix, testiamo l’immagine

Tutti gli articoli

RSS Planet di Ubuntu-it

  • Aldo Latino (aldolat): Firefox 3.5 e la chiusura dell’ultima scheda
  • Lorenzo Sfarra (twilight): 5 fantastici design, numero 4
  • Dario Cavedon: Un super netbook con Ubuntu preinstallato
  • Riccardo Filippone (ethernaly): PSP Go! Niente di veramente innovativo.
  • Ubuntu-it Newsletter: Newsletter italiana numero 26

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
  • Parzialmente scremato
  • 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