Etnablog.altervista.org :)

Visitatore: 1313429
Welcome ospite
Menu di accessibilità:
Dimensione carattere:

Home > Programmazione C > Guida alla creazione di programmi in C, con Glade, Anjuta, LibGlide
Contenuto della pagina:
25 Maggio 2007

Guida alla creazione di programmi in C, con Glade, Anjuta, LibGlide

Guida alla programmazione C con GTK+ di Etnablog : Prima parte 

Introduzione a Glade 3 e le Libglide


Glade Interface Designer (o semplicemente "Glade") è un software per la creazione di GUI (Graphics User Interface, interfacce utente) basato su GTK+.

E' troppo definire Glade un IDE (Integrated Development Enviroment, cioè un ambiente integrato di sviluppo), ma è giusto definire Glade un buon RAD (Rapid Application Developer) per quel che riguarda la parte "grafica" di una GUI..

Grazie a questo software è possibile, in punta di click, costruire facilmente tutta la parte grafica relativa ad un vostro programma.
Una volta realizzata la vostra interfaccia, Glade la salverà in un file con estensione .glade , che è in formato XML, che verrà poi letto ("parsato") grazie alle librerie "libglide".

Questo sistema è così versatile che, procurandosi tutte le librerie che servono, è possibile ricompilare il vostro software per essere usato anche con Windows.
Per ulteriori informazioni riguardo la compatibilità con Windows vedi: http://gladewin32.sourceforge.net/module s/wfdownloads/

Glide rende enormemente piu piacevole la vostra esperienza di programmazione.

A me piace sviluppare in linguaggio C, e uso Glade per le mie interfacce grafiche.

Si impara presto ad usare Glade, ma per creare delle buone interfacce utente non è sufficiente sapere usare soltanto Glade, occorre infatti conoscere le GTK+ che è un "toolkit", cioè un insieme molto ricco di comandi utilissimi a sviluppare interfacce utente, che supporta numerosi linguaggi fra cui Java, Python, C, C++ (e altri!).
In realtà però, per cominciare a sviluppare delle interfacce utente decenti, usando Glade, è sufficiente conoscere soltanto alcuni comandi e regole essenziali di GTK+.

Se avete voglia di creare delle GUI complicate e con funzioni dinamiche, le vostre conoscenze di GTK+ dovranno crescere di pari passo con la vostra voglia di esagerare.

Questa guida è diretta a chi non ha mai programmato C, per chi invece è già esperto si tratterà di certo di un utile ripasso.

Non posso purtroppo descrivere nei dettagli le basi della programmazione C, andrebbe oltre lo scopo di questa guida, ma spero di indurre in ogni novizio la voglia di approfondire da sè l'argomento.

Sarò molto dettagliato e lento inizialmente, già dopo le prime lezioni mirerò più al sodo :)


Anjuta


Anjuta è un IDE (cioè un ambiente di sviluppo integrato) per sviluppare programmi C e C++.

Una volta costruita, usando Glade, la parte grafica del nostro programma, serve Anjuta per dare un senso a tutto quanto, per dire al sistema cosa deve fare di tutti quei bottoni e accessori che abbiamo inserito nelle nostre finestre con Glade.

Installiamo Glade, Anjuta e gli altri accessori



La distribuzione che ho usato è una Ubuntu Feisty.

Cercate in Synaptic ed installate i pacchetti:

- glade-3
- glade-gnome-3
- libglade2-dev
- libgtk2.0-dev
- anjuta
- anjuta-common
- g77
- autoconf
- devhelp
- devhelp-common

Eventuali altri pacchetti dovrebbero essere installati in automatico da Synaptic: siete pronti per cominciare.

Sviluppare la prima applicazione



Completata l'installazione, dovreste trovarvi Glade e Anjuta già nel menu di GNOME (magari in una apposita sezione "programmazione").

Aprite Anjuta e "create un nuovo progetto" servendovi del "wizard di applicazioni".
1-wizard.png
Selezionate che volete creare un "LibGlade 2.0 Project".
2-libglade.png
Quindi andate avanti e scrivete il nome del vostro primo progetto, ad esempio "primo_programma" (è preferibile che il nome non sia interrotto da spazi, piuttosto usate l'underscore.
3-primo_programma.png
A questo punto vi chiede una piccola descrizione del vostro progetto, scrivete una cosa qualsiasi e andate ancora avanti e avanti ancora senza fare modifiche fino a cliccare su "Applica".

A questo punto Anjuta fa una prima "autogenerazione". Nella parte bassa dello schermo lo osservate fare alcune operazioni. Aspettate che termini.

Alla fine, se tutto è andato bene, terminerà con un "Completed ... Successful".
4-pronti_per_cominciare.png
Se il vostro risultato non è questo e qualcosa è andato storto, ricontrollate le operazioni che ha eseguito e osservate di quali pacchetti ancora mancate per potere lavorare, ed installateli con Synaptic.

Osservate: sulla sinistra avete un elenco dei file che compongono il vostro progetto. Cercate la directory "source - src" ed aprite il file "main.c".
5-iniziamo.png
main.c è il file principale, da cui partirà il nostro progetto. Tanto per cominciare, guardate nel menu in alto e dal sottomenu "genera" selezionate il tasto "genera" (o direttamente premete il F11 nella vostra tastiera).

Premendo su "genera", quello che lui in realtà fa è eseguire un comando "make", e crea un eseguibile del vostro programma, che eseguirete poi con il tasto "esegui" dello stesso menù (o premete F3 nella vostra tastiera). Fatelo, dovreste vedere la vostra prima finestra vuota, tutta da riempire a vostra fantasia. :)
6-prima_finestra.png
Bene, a questo punto mettiamo da parte anjuta (non chiudetelo però) ed apriamo Glade.

Osservate l'interfaccia di Glade. Sulla sinistra ci sono gli strumenti utili alla creazione, sulla sinistra avete la finestre "ispettore" e proprietà, capiremo presto a cosa servono.
7-interfaccia_glade.png
Con Glade, dovrete modificare un file con estensione .glade, che si trova nel progetto che avete creato poco fa con Anjuta, che dovrebbe trovarsi in una apposita cartella "Projects" generata da Anjuta stesso nella vostra home.

Cercate questo file .glade e selezionatelo (se avevate chiamato il vostro progetto "primo_programma", dovrebbe essere "primo_programma.glide".

A questo punto dovreste vedere spuntare nella finestra "ispettore" un oggetto "window1" o simile, cliccatevi sopra due volte ed ecco la vostra finestra iniziale, grigia e vuota.
8-finestra_vuota.png
Indugiando col mouse, senza cliccare, su ogni strumento in Anjuta, vedrete comparire una finestrella (detta "tooltip") che vi spiega a cosa serve lo strumento che state puntando.

Prendete lo strumento "casella verticale" (casella verticale) e cliccate sulla vostra finestra grigia e vuota.
Potete impostare il numero di divisioni della vostra finestra, 3 vanno bene.
9-casella-verticale.png
Adesso prendete Lo strumento "label" (label) e inseritelo in mezzo.
10-label.png
Adesso guardate la finestra "ispettore" ed aprite quello che è "l'albero" della vostra finestra ed evidenziate "label".
11-label2.png
Modificate adesso le proprietà della vostra "label" con l'apposito pannello e ne cambierete così facilmente il contenuto.

A questo punto, visto che "già state imparando a muovervi", modificate da voi stessi la dimensione di "Window1" agendo sulle sue proprietà. Impostate 300 sia come "larghezza predefinita", sia come "altezza predefinita" :)
12-window1-size.png
Bene, a questo punto salvate il vostro lavoro e tornate su Anjuta.

Cliccate su esegui e voilà :)
13-esecuzione.png
La prima lezione finisce qui. La prossima volta aggiungeremo bottoni e altro :)

Descrizioni usate nelle foto: 
Postato da: Etnablog in Programmazione C alle 10:12

Permalink | Commenti(22)
Inserisci commento

Commenti:

ciao
vorrei sapere se esiste un metodo per ottenere il codice sorgente in c dell'interfaccia, dopo averla creata cn glade.

grazie

 

Postato da: soulchris il 18 Luglio 2007 alle 12:55

Avatar

A quanto ne so c'è bisogno di installare un apposito plug in da aggiungere a Glade per fare quello che chiedi..

Non so altro purtroppo..

Ad ogni modo, specie se fai uso dell'autoconnect, non ti rimane che creare le callback. :)

 

Postato da: Etnablog il 20 Luglio 2007 alle 23:14

Salve,

ho postato il mio problema qui su Debianitalia.org, senza che nessuno per ora abbia saputo darmi una mano. Tu hai idea di cosa possa essere?

Grazie!

Saluti

Carlo

 

Postato da: Stemby il 13 Ottobre 2007 alle 22:42

Avatar

Ciao Stemby... Purtroppo io uso Ubuntu quindi non so essere preciso..
Questo non ti è d'aiuto? --> http://packages.debian.org/lenny/libgnom eui-dev

O questo? --> http://packages.debian.org/lenny/libgnom eui-0

Dovresti cercare questo: libgnomeui-dev penso..

 

Postato da: Etnablog il 14 Ottobre 2007 alle 18:40

Risolto! :-)

Al link che ho lasciato nell'ultimo messaggio c'è la soluzione, spero che possa tornare utile anche ad altri debianisti (niubbi quanto me).

Saluti

Carlo

 

Postato da: Stemby il 15 Ottobre 2007 alle 13:34

@Etnablog:
Grazie per la risposta (che ho letto solo ora), era proprio quello il pacchetto mancante!! Devo avere avuto un problema di cache, perché la tua risposta mi è comparsa solo ora, dopo avere inviato il mio nuovo messaggio...

 

Postato da: Stemby il 15 Ottobre 2007 alle 13:37

Avatar

Bene :) sono contento che hai risolto. wink.gif

 

Postato da: Etnablog il 16 Ottobre 2007 alle 3:08

Salve a tutti, mi sto cimentando nella programmazione C con Anjuta + Glade e visto questo ottimo tutorial ho provato a seguirlo passo-passo, ma già al primo punto "wizard di applicazioni" non combacia l'immagine. Provando comunque andando su File-Nuovo-Project mi appare il Wizard simile a quello della seconda immagine del Project Type ma con la differenza che non mi appare l'icona Lib-Glade 2.0 project. Di conseguenza gli altri tipi di wizard non mi creano un progetto che utilizzi automaticamente l'interfaccia grafica creata con Glade. Nella sezione plug-in non sono attivabili quello inerente il wizard di applicazioni e quelli del Lib-Glade 2.0. Qualcuno mi sa spiegare il perchè e come risolvere? Grazie

 

Postato da: aubeviolet il 17 Gennaio 2008 alle 13:29

Avatar

Ciao Aubeviolet,
purtroppo le immagini non corrispondono piu perche quando ho scritto la guida usavo un Anjuta che ormai oggi è vecchiotto...

Tuttavia proverò a darti una mano comunque, considera che sto usando una Ubuntu Gutsy adesso:
Ho installato l'Anjuta e Glade (nel mio caso le versioni Anjuta 2.2.0 e Glade 3.4.0).

Ho quindi installato da Synaptic i pacchetti:
- Autogen
- libgtk2.0.dev
- gnome-devel (che comprende molta roba..)

Il pacchetto build-essential suppongo che tu l'abbia gia installato in precedenza..

Fai da Anjuta un "nuovo progetto gtk+". Il progetto risiederà in una apposita cartella progetti nella tua home.

Ora modifica con Glade il file .glade creato da Anjuta stesso.

A questo punto torna in Anjuta e prova a lanciare un "Run Autogenerate" senza parametri (E' nel menu sotto "genera").

Se termina con successful allora è fatta.. Lancia un "Compile" dallo stesso menu e un "execute".

Dovrebbe andare prova wink.gif

 

Postato da: Etnablog il 17 Gennaio 2008 alle 18:03

Grazie dei chiarimenti. Funziona alla grande!
Anch'io ho Gutsy e le stesse versioni per Anjuta e Glade.

Posso approfittare ancora per un dubbio? Poi spero di riuscire a cavarmela da solo...

Come mai, se tento di modificare il file .glade direttamente da Anjuta con il tasto destro, si chiude tutto?

Grazie ancora.

 

Postato da: aubeviolet il 20 Gennaio 2008 alle 15:42

Avatar

Beh in realtà credo che questa versione di Anjuta abbia qualche bug di troppo... Comunque sia, alla fine, non hai alcun bisogno di aprire il file glade attraverso Anjuta dal momento che devi modificarlo da Glade stesso..

Tuttavia, se vuoi modificare il codice XML del file .glade manualmente, puoi farlo tranquillamente attraverso un qualsiasi editor di testo come gedit :)

Altrimenti quello che puoi fare è provare ad installare da sorgenti una versione più aggiornata di Anjuta, se esiste, e se è una versione STABILE e non ancora in via di sviluppo (se scegli questa via, occhio alle dipendenze da soddisfare..).

 

Postato da: Etnablog il 20 Gennaio 2008 alle 21:03

Sto seguendo questa tua guida con molto interesse ma purtroppo non mi sta funzionando.
Ho creato il progetto gtk, ho modificato il file .glade, ma quando torno su anjuta per provarlo apro il main faccio per compilarlo ma mi dice:
error: config.h: no such file or directory
error: gtk/gtk.h: no such file or directory
error: glade/glade.h: no such file or directory

error: Gtkwidget undeclared (first use in this function)
error: windiow undeclared (first use in this function)

gli ultimi due sono riferiti alla riga:
GtkWidget *window;

i primi sembra non abbia installato dei pacchetti ma i tuoi li ho messi tutti per l'altro credo sia legato allo stesso motivo

 

Postato da: Paolo il 13 Febbraio 2008 alle 11:23

Sono riuscito a risolvere il mio problema

 

Postato da: Paolo il 16 Febbraio 2008 alle 11:01

Ciao,

ho seguito la guida e ho capito come utilizzare glade per 'disegnare'. Non riesco però a modificare il carattere delle label. Non sono riuscito a trovare fra le prorpietà, quella che mi permette di avere, per esempio, scritte più
grandi o con un carattere diverso. Mi puoi indicare dove trovo questo controllo?

Grazie in anticipo

marco

 

Postato da: marco il 30 Ottobre 2008 alle 15:48

Ciao,
scusami per l'estrema banalità della domanda, ma sono a totale digiuno di programmazione. Io ho anjuta 2.4.1 e glade 3.4.5. Perchè nel wizard di anjuta non compare di un nuovo progetto di tipo libglade?

ciao e grazie

ockeghem

 

Postato da: ockeghem il 07 Febbraio 2009 alle 15:52

io ho provato a fare un progetto gtk+ con anjuta, ho associato i pulsanti al file in c/c++ usando il comando Glade-> dialogo associazioni e scegliendo un file, ma non ho avuto alcuna comparsa delle funzioni di callback sul file selezionato, sapete come fare?

 

Postato da: Marco Scarpa il 02 Giugno 2009 alle 20:02

Se il vostro risultato non è questo e qualcosa è andato storto, ricontrollate le operazioni che ha eseguito e osservate di quali pacchetti ancora mancate per potere lavorare, ed installateli con Synaptic.
Ciao,
Stò seguendo il il tuo procedimento a me viene questo risultato e non so anfare avanti

 

Postato da: leonardo59 il 17 Giugno 2010 alle 12:40

Non ho usato glade, ma mi sono fermato a fare il mio programmino con anjuta.
Ora se volessi creare un file eseguibile, che quindi mi farebbe aprire una finestra del terinale su cui si eseguira il programma, come facevo in windows con dev++...come posso fare?
Grazie cmq!

 

Postato da: mikyago il 16 Luglio 2010 alle 13:07

NN ci capisco nnt hellppppp su msn tamarrino.99@live.it

 

Postato da: {GF}Legend di CheatForge il 07 Settembre 2010 alle 18:13

scusate ma le altre lezion idove le trovo?..:-(

 

Postato da: fabry il 04 Ottobre 2010 alle 14:26

ciao appena genero il main.c non mi va a creare il file mio_programma.glade :( come faccio? ho seguito tutto passo passo... aiuto :(

 

Postato da: gianni il 30 Ottobre 2010 alle 15:55

Con questo tutorial posso creare un programma in c con grafica personalizzata ?
una grafica personalizzata è la GUI ?
Se la risposta è no per la prima domanda come faccio a creare un programma in c con grafica personalizzata ?
io per programmare uso ubuntu su una virtual box, ma vorrei programmare programmi con grafica personalizzata su windows come posso fare ?
fino a che punto posso personalizzare la grafica di un programma fatto con il c ?

 

Postato da: Orma07 il 18 Ottobre 2012 alle 17:23

Solo gli utenti registrati possono lasciare commenti
*1 user online
Caricamento pagina: 0.02 s