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 02/10/2011, 15:41] – [Manipuler des objets créés avec glade dans l'edi Anjuta (ubuntu 11.10)] 109.13.183.96 | 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:// | ||
| + | ---- | ||
| + | |||
| + | // | ||
