Anem a veure en aquest petit tutorial com fer els nostres primers passos amb Vala i GTK3. Comencem:
Instal·lant les eines necessàries
sudo apt-get install valac libgtk-3-dev
l'IDE:
Podem trobar gran varietat d'editors que podem utilitzar/configurar com a IDE. En són un exemple Raspi, SublimText, Geany … En el meu cas faré servir Scratch (el qual podem trobar a elementary us).
Vegem el típic exemple de Hola Món!, el qual ens quedaria de la següent forma:
I el codi es veuria de la manera següent:
Ara vegem els detalls del codi. Tenim una classe la qual és una finestra Gtk.
# Inicialitzem Gtk amb arguments Gtk.init (ref args); # Creem l'aplicació. Application app = new Application(); # Posem l'aplicació al centre de la pantalla. app.window_position = Gtk.WindowPosition.CENTER; # En tancar destruïm l'app. app.destroy.connect (Gtk.main_quit); # Mesurem la finestra app.set_default_size (100, 50); # Creem un botó i connectem l'esdeveniment cliquejar el botó i imprimim una hola! var button = new Gtk.Button.with_label ("Saluta"); button.clicked.connect (() => { print("Hola!\n"); }); # Afegim el botó a l'app app.add(button); # Mostrem l'app/finestra app.show_all ();
Al clicar al button obtindrem com a sortida:
Compilem i executem:
$ valac -v lol.vala --pkg gtk+-3.0 $ ./lol
Ara us deixo alguns enllaços d'interès:
http://elementaryos.org/docs/code/the-basic-setup
El problema de no tenir una idea que dibuixi finestres, és que t'has de saber tots els mètodes de la classe per crear una finestra, quelcom primitiu, la veritat.
Si heu fet un bon treball en l'etapa de disseny no tindries raó per utilitzar un IDE a l'hora de programar.
No m'entendis, jo parlo de tenir un ide que t'ho faci el , les finestres, sense haver de tipejar codi en principi:
http://imagebin.org/275532
Això us estalvia saber quin és el mètode d'un botó, etc.
Amb un IDE només estalvies temps …… Però si parlem de funcionalitat en fer servir un IDE o un TERMINAL a l'hora de compilar, tots dos compleixen les mateixes funcions.
És qüestió de gustos i comoditat.
Doncs tens Glade (https://glade.gnome.org/), és una eina RAD que et permet dissenyar ràpidament les finestres duna aplicació amb simples clics de ratolí.
Un cop creada la interfície genera un fitxer en format xml que el pots invocar des de llenguatges de programació com C, C++, Python, Perl, Vala, Java, etc.
Espero això respongui a la teva pregunta.
Sí que hi ha ide que integra creador de finestres, Anjuta IDE.
Hola Lolbimbo:
Fa temps vaig decidir fer servir Vala com el meu llenguatge principar abans que D i Golang per x raons, però em trobo estancat en un problema, el codi que tinc compilava molt bé, però ara em surt el següent error:
/media/…/vala/nn.vala.c: In function 'main':
/media/…/vala/nn.vala.c:155:2: warning: 'g_type_init' és deprecated (declared at /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
g_type_init ();
si és molta molèstia ho entendré, gràcies per endavant i felicitacions pel bloc.
Hola amic, jo estic començant amb vala, però passa'm el codi que tens a la línia 155, de totes maneres és un warning no un error si et funciona no passa res ja que pot ser que sigui un bug de vala.
Hola Lolimbo, celebro el teu entusiasme ja que em sentia solitari en vala, en realitat l'error me'l dóna en qualsevol codi tan simple com: using Gtk;
int main (string[] args) {
Gtk.init (ref args);
var window = new Window();
window.title = First GTK+ Program;
window.border_width = 10;
window.window_position = WindowPosition.CENTER;
window.set_default_size (350, 70);
window.destroy.connect (Gtk.main_quit);
var button = new Button.with_label («Click me!»);
button.clicked.connect (() => {
button.label = Thank you;
});
proveu {
// Either directly from a file …
window.icon = new Gdk.Pixbuf.from_file («my-app.png»);
// … or from the theme
window.icon = IconTheme.get_default().load_icon ("my-app", 48, 0);
} catch (Error e) {
stderr.printf («Could not load application icon: %s\n», e.message);
}
window.add (button);
window.show_all ();
Gtk.main ();
torna 0;
}
Però entre la feina amb Windows i la casa no em dono temps de caçar lerror, se'm fa que és problema de versions de vala, no sé.
En actualitzar vala s'hauria de treure el warning.
El tutorial està ben explicat i m'agrada, però sempre m'he preguntat, perquè sempre iniciar amb el programa «hola món», per a principiants estaria bé, però que dels que ja tenen experiència programant? perquè no millor indicar com fer una interfície amb diversos elements (botons, labels, etc)?
M'agrada la Vala i ho vull aprendre, però seria més constructiu començar una mica més «intermedi», no?
Properament areu un altre post amb un nivell intermedi.
Java?
Bon tutorial ben explicat i tot de fet vas fer que considerés ficar a vala i gtk a la meva llista de coses per aprendre.
Excel·lent, ara jo suggereixo un tutorial de Seed (javascript) + Gtk, seria força interessant, ja que aquesta és l'opció oficial que ha seleccionat el projecte Gnome.