Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
vala [Le 23/12/2008, 22:29] – tags Ban | vala [Le 24/03/2013, 13:25] (Version actuelle) – [Liens externes] 83.36.193.18 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | ====== Vala : Un langage de programmation pour GNOME ====== | ||
+ | |||
+ | **Vala** est un nouveau langage de programmation (2006) qui propose des fonctionnalités modernes sans nécessiter l' | ||
+ | |||
+ | La syntaxe de Vala est proche de celle du C#. À la différence de ce dernier, Vala n'est pas exécuté dans un environnement d' | ||
+ | |||
+ | Vala est basé sur le modèle [[wp> | ||
+ | |||
+ | ===== Installation du compilateur (valac) ===== | ||
+ | |||
+ | ====via les dépôts officiels==== | ||
+ | Il vous suffit d' | ||
+ | |||
+ | ====via le PPA==== | ||
+ | |||
+ | [[ppa|Ajoutez à vos sources de logiciels le PPA]] suivant : [[https:// | ||
+ | |||
+ | ===== Utilisation du compilateur ===== | ||
+ | |||
+ | Le compilateur Vala s' | ||
+ | |||
+ | La commande basique pour compiler un programme en Vala est la suivante : | ||
+ | valac source.vala -o executable | ||
+ | |||
+ | Il est bien-sûr possible de fournir plusieurs fichiers sources Vala pour générer un exécutable. Pour lier une bibliothèque, | ||
+ | valac source.vala -o executable --pkg gtk+-2.0 | ||
+ | |||
+ | Pour plus de détails, référez-vous à la [[:man|page de manuel]] de **valac**. | ||
+ | |||
+ | ===== Exemple de code ===== | ||
+ | |||
+ | Voici un exemple de [[wpfr> | ||
+ | |||
+ | <code c#> | ||
+ | using GLib; | ||
+ | |||
+ | class Sample : Object { | ||
+ | void run () { | ||
+ | stdout.printf (" | ||
+ | } | ||
+ | |||
+ | static int main (string[] args) { | ||
+ | var sample = new Sample (); | ||
+ | sample.run (); | ||
+ | return 0; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Manipuler des objets créés avec glade dans l'edi Anjuta (ubuntu 11.10) ===== | ||
+ | La seule difficulté est de comprendre qu'il faut créer des pointeurs manuellement dans la classe. | ||
+ | |||
+ | L' | ||
+ | |||
+ | Puis lorsqu' | ||
+ | |||
+ | Fichier essai.ui | ||
+ | < | ||
+ | <?xml version=" | ||
+ | < | ||
+ | <!-- interface-requires gtk+ 2.12 --> | ||
+ | <object class=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <signal name=" | ||
+ | < | ||
+ | <object class=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <object class=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | <object class=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <signal name=" | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Fichier essai.vala | ||
+ | < | ||
+ | using GLib; | ||
+ | using Gtk; | ||
+ | |||
+ | public class Main : Object | ||
+ | { | ||
+ | |||
+ | /* | ||
+ | * Uncomment this line when you are done testing and building a tarball | ||
+ | * or installing | ||
+ | */ | ||
+ | //const string UI_FILE = Config.PACKAGE_DATA_DIR + "/" | ||
+ | const string UI_FILE = " | ||
+ | |||
+ | //Mes pointeurs pour manipuler l' | ||
+ | private Window window ; | ||
+ | private Gtk.Label label1 ; | ||
+ | |||
+ | |||
+ | public Main () | ||
+ | { | ||
+ | |||
+ | try | ||
+ | { | ||
+ | var builder = new Builder (); | ||
+ | builder.add_from_file (UI_FILE); | ||
+ | builder.connect_signals (this); | ||
+ | |||
+ | |||
+ | //var window = builder.get_object (" | ||
+ | |||
+ | // | ||
+ | // | ||
+ | this.window = builder.get_object (" | ||
+ | this.label1 = builder.get_object (" | ||
+ | |||
+ | window.show_all (); | ||
+ | } | ||
+ | catch (Error e) { | ||
+ | stderr.printf (" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | [CCode (instance_pos = -1)] | ||
+ | public void on_destroy (Widget window) | ||
+ | { | ||
+ | Gtk.main_quit(); | ||
+ | } | ||
+ | |||
+ | [CCode (instance_pos=-1)] | ||
+ | public void on_button_clicked (Gtk.Button button1) { | ||
+ | stdout.printf (" | ||
+ | |||
+ | //Mes objets de classe manipuler | ||
+ | stdout.printf ( this.label1.get_text() + " \n"); | ||
+ | |||
+ | this.label1.set_text(" | ||
+ | } | ||
+ | |||
+ | static int main (string[] args) | ||
+ | { | ||
+ | Gtk.init (ref args); | ||
+ | var app = new Main (); | ||
+ | |||
+ | Gtk.main (); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | ===== Liens externes ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[wpfr> | ||
+ | * [[http:// | ||
+ | ---- | ||
+ | |||
+ | // |