Nous allons voir dans ce petit tutoriel comment faire nos premiers pas avec Vala et GTK3. Commençons:
Installer les outils nécessaires
sudo apt-get install valac libgtk-3-dev
L'IDE:
Nous pouvons trouver une grande variété d'éditeurs que nous pouvons utiliser / configurer comme IDE. Un exemple d'entre eux sont Scratch, SublimeTexte, Geany … Dans mon cas, je vais utiliser Scratch (que l'on peut trouver dans les os élémentaires).
Voyons l'exemple typique de Hello World !, qui serait le suivant:
Et le code ressemblerait à ceci:
Voyons maintenant les détails du code. Nous avons une classe qui est une fenêtre Gtk.
# Nous initialisons Gtk avec les arguments Gtk.init (réf args); # Nous créons l'application. Application application = nouvelle application (); # Nous mettons l'application au centre de l'écran. app.window_position = Gtk.WindowPosition.CENTER; # Lors de la fermeture, nous détruisons l'application. app.destroy.connect (Gtk.main_quit); # Nous mesurons la fenêtre app.set_default_size (100, 50); # Nous créons un bouton et connectons l'événement de clic de bouton et imprimons un bonjour! var button = new Gtk.Button.with_label ("Dites bonjour"); button.clicked.connect (() => {print ("Bonjour! \ n");}); # Ajoutez le bouton à l'application app.add (bouton); # Nous montrons l'App / Window app.show_all ();
En cliquant sur le bouton, nous obtiendrons en sortie:
Nous compilons et exécutons:
$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol
Maintenant je vous laisse quelques liens intéressants:
http://elementaryos.org/docs/code/the-basic-setup
Le problème de ne pas avoir d'idée qui dessine des fenêtres est que vous devez connaître toutes les méthodes de la classe pour créer une fenêtre, quelque chose de primitif, vraiment.
Si vous avez fait du bon travail dans la phase de conception, vous n'auriez aucune raison d'utiliser un IDE lors de la programmation.
Vous ne m'avez pas compris, je parle d'avoir une idée qui le fera pour vous, les fenêtres, sans avoir à taper du code en principe:
http://imagebin.org/275532
Cela vous évite de savoir quelle est la méthode d'un bouton, etc.
Avec un IDE, vous ne gagnez que du temps… Mais si nous parlons de fonctionnalité lors de l'utilisation d'un IDE ou d'un TERMINAL lors de la compilation, ils remplissent tous les deux les mêmes fonctions.
C'est une question de goût et de confort.
Eh bien, vous avez Glade (https://glade.gnome.org/), est un outil RAD qui vous permet de concevoir rapidement des fenêtres d'application avec de simples clics de souris.
Une fois l'interface créée, elle génère un fichier au format xml que vous pouvez appeler à partir de langages de programmation tels que C, C ++, Python, Perl, Vala, Java, etc.
J'espère que cela répond à votre question.
S'il y a une idée qui intègre un créateur de fenêtre, Anjuta IDE.
Bonjour Lolbimbo:
Il y a quelque temps, j'ai décidé d'utiliser Vala comme langue principale avant D et Golang pour x raisons, mais je suis coincé dans un problème, le code que j'ai très bien compilé, mais maintenant j'obtiens l'erreur suivante:
/media/…/vala/nn.vala.c: Dans la fonction 'main':
/media/…/vala/nn.vala.c:155:2: avertissement: 'g_type_init' est obsolète (déclaré à /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
g_type_init();
si c'est trop de problèmes je comprendrai, merci d'avance et félicitations sur le blog.
Bonjour l'ami, je commence par vala, mais passe-moi le code que tu as sur la ligne 155, de toute façon c'est un avertissement, pas une erreur, si ça marche pour toi, rien ne se passe car c'est peut-être un bug vala.
Bonjour Lolimbo, je célèbre votre enthousiasme depuis que je me suis senti seul dans vala, en fait l'erreur me donne dans n'importe quel code aussi simple que: utiliser Gtk;
int main (chaîne [] args) {
Gtk.init (réf args);
var window = nouvelle fenêtre ();
window.title = "Premier programme GTK +";
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 ("Cliquez-moi!");
button.clicked.connect (() => {
button.label = "Merci";
});
essayez {
// Soit directement à partir d'un fichier ...
window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
//… ou du thème
window.icon = IconTheme.get_default () .load_icon ("mon-application", 48, 0);
} catch (Erreur e) {
stderr.printf ("Impossible de charger l'icône de l'application:% s \ n", e.message);
}
window.add (bouton);
window.show_all();
Gtk.main();
0 revenir;
}
Mais entre travailler avec Windows et chez moi, je n'ai pas le temps de traquer l'erreur, il me semble que c'est un problème avec les versions de vala, je ne sais pas.
La mise à jour de vala devrait supprimer l'avertissement.
Le tutoriel est bien expliqué et je l'aime bien, seulement que je me suis toujours demandé, pourquoi toujours commencer par le programme "hello world", pour les débutants ce serait bien, mais qu'en est-il de ceux qui ont déjà de l'expérience en programmation? Pourquoi ne pas indiquer comment faire une interface avec plusieurs éléments (boutons, étiquettes, etc.)?
J'aime Vala et j'ai envie de l'apprendre, mais il serait plus constructif de commencer un peu plus "entre les deux", non?
Bientôt, un autre poste de niveau intermédiaire.
Java?
Beau tutoriel bien expliqué et tout m'a fait envisager de mettre vala et gtk sur ma liste à apprendre.
Excellent, maintenant je propose un tutoriel Seed (javascript) + Gtk, ce serait assez intéressant, car c'est l'option officielle que le projet Gnome a sélectionnée.