In questo piccolo tutorial vedremo come muovere i primi passi con Vala e GTK3. Iniziamo:
Installazione degli strumenti necessari
sudo apt-get install valac libgtk-3-dev
L'IDE:
Possiamo trovare una grande varietà di editor che possiamo usare / configurare come IDE. Un esempio di loro sono Scratch, SublimeTesto, Geany ... Nel mio caso userò Scratch (che possiamo trovare in elementary os).
Vediamo il tipico esempio di Hello World !, che sarebbe il seguente:
E il codice sarebbe simile a questo:
Vediamo ora i dettagli del codice. Abbiamo una classe che è una finestra Gtk.
# Inizializziamo Gtk con gli argomenti Gtk.init (ref args); # Creiamo l'applicazione. App dell'applicazione = nuova applicazione (); # Mettiamo l'applicazione al centro dello schermo. app.window_position = Gtk.WindowPosition.CENTER; # Alla chiusura distruggiamo l'app. app.destroy.connect (Gtk.main_quit); # Misuriamo la finestra app.set_default_size (100, 50); # Creiamo un pulsante e colleghiamo l'evento clic del pulsante e stampiamo un ciao! var button = new Gtk.Button.with_label ("Say Hello"); button.clicked.connect (() => {print ("Hello! \ n");}); # Aggiungi il pulsante all'app app.add (pulsante); # Mostriamo l'app / finestra app.show_all ();
Cliccando sul pulsante otterremo come output:
Compiliamo ed eseguiamo:
$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol
Ora vi lascio alcuni link di interesse:
http://elementaryos.org/docs/code/the-basic-setup
Il problema di non avere un ide che disegna finestre è che devi conoscere tutti i metodi della classe per creare una finestra, qualcosa di primitivo, davvero.
Se hai fatto un buon lavoro in fase di progettazione, non avresti motivo di utilizzare un IDE durante la programmazione.
Non mi hai capito, sto parlando di avere un'idea che lo farà per te, windows, senza dover digitare il codice in linea di principio:
http://imagebin.org/275532
Ciò ti evita di sapere qual è il metodo di un pulsante, ecc. Ecc
Con un IDE risparmi solo tempo …… Ma se parliamo di funzionalità quando si utilizza un IDE o un TERMINALE durante la compilazione, entrambi svolgono le stesse funzioni.
È una questione di gusto e comfort.
Bene, hai Glade (https://glade.gnome.org/), è uno strumento RAD che consente di progettare rapidamente le finestre delle applicazioni con semplici clic del mouse.
Una volta creata l'interfaccia, genera un file in formato xml che puoi richiamare da linguaggi di programmazione come C, C ++, Python, Perl, Vala, Java, ecc.
Spero che questo risponda alla tua domanda.
Se c'è un'idea che integra un creatore di finestre, Anjuta IDE.
Ciao Lolbimbo:
Qualche tempo fa ho deciso di usare Vala come lingua principale prima di D e Golang per x motivi, ma sono bloccato in un problema, il codice l'ho compilato molto bene, ma ora ricevo il seguente errore:
/media/…/vala/nn.vala.c: In funzione 'main':
/media/…/vala/nn.vala.c:155:2: warning: "g_type_init" è deprecato (dichiarato in /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-statements]
g_type_init();
se è troppo disturbo capirò, grazie in anticipo e complimenti per il blog.
Ciao amico, comincio con vala, ma passami il codice che hai sulla riga 155, comunque è un avvertimento, non un errore, se per te funziona non succede niente perché potrebbe essere un bug di vala.
Ciao Lolimbo, celebro il tuo entusiasmo da quando mi sono sentito solo in vala, effettivamente l'errore mi viene dato in qualsiasi codice semplice come: usare Gtk;
int main (string [] args) {
Gtk.init (rif args);
var finestra = nuova finestra ();
window.title = "Primo programma GTK +";
finestra.larghezza_bordo = 10;
window.window_position = WindowPosition.CENTER;
window.set_default_size(350, 70);
window.destroy.connect(Gtk.main_quit);
var button = new Button.with_label ("Cliccami!");
button.clicked.connect (() => {
button.label = "Grazie";
});
provare {
// O direttamente da un file ...
window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
// ... o dal tema
window.icon = IconTheme.get_default () .load_icon ("my-app", 48, 0);
} cattura (errore e) {
stderr.printf ("Impossibile caricare l'icona dell'applicazione:% s \ n", e.message);
}
window.add (pulsante);
finestra.mostra_tutto ();
Gtk.main();
0 ritorno;
}
Ma tra lavorare con Windows e in casa, non ho tempo per scovare l'errore, mi sembra che sia un problema con le versioni di vala, non lo so.
L'aggiornamento di vala dovrebbe rimuovere l'avviso.
Il tutorial è ben spiegato e mi piace, solo che mi sono sempre chiesto, perché iniziare sempre con il programma "ciao mondo", per i principianti andrebbe bene, ma che dire di chi ha già esperienza di programmazione? Perché non indicare come realizzare un'interfaccia con più elementi (pulsanti, etichette, ecc.)?
Mi piace Vala e voglio impararlo, ma sarebbe più costruttivo iniziare un po 'di più "in mezzo", giusto?
Presto ci sono un altro post con un livello intermedio.
Giava?
Bel tutorial ben spiegato e tutto in realtà mi ha fatto pensare di mettere vala e gtk nella mia lista di cose da imparare.
Ottimo, ora suggerisco un tutorial Seed (javascript) + Gtk, sarebbe piuttosto interessante, in quanto questa è l'opzione ufficiale selezionata dal progetto Gnome.