Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
vala [Le 24/03/2013, 13:25] 83.36.193.18 [Liens externes] |
vala [Le 07/08/2023, 12:36] (Version actuelle) spnux [Liens externes] MAJ hyperlien |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>programmation compilation BROUILLON}} | + | {{tag>programmation compilation}} |
---- | ---- | ||
Ligne 13: | Ligne 13: | ||
===== Installation du compilateur (valac) ===== | ===== Installation du compilateur (valac) ===== | ||
- | ====via les dépôts officiels==== | + | ====Via les dépôts officiels==== |
- | Il vous suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://valac|valac]]**. | + | Il vous suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>valac]]**. |
- | ====via le PPA==== | + | ====Via le PPA==== |
[[ppa|Ajoutez à vos sources de logiciels le PPA]] suivant : [[https://launchpad.net/~vala-team/+archive/ppa|ppa:vala-team/ppa]] , rechargez la liste des paquets, puis [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://vala|vala]]** | [[ppa|Ajoutez à vos sources de logiciels le PPA]] suivant : [[https://launchpad.net/~vala-team/+archive/ppa|ppa:vala-team/ppa]] , rechargez la liste des paquets, puis [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://vala|vala]]** | ||
Ligne 28: | Ligne 28: | ||
Il est bien-sûr possible de fournir plusieurs fichiers sources Vala pour générer un exécutable. Pour lier une bibliothèque, on utilisera l'option ''%%--pkg%% <package>'', par exemple pour compiler un programme utilisant [[wpfr>GTK+]] : | Il est bien-sûr possible de fournir plusieurs fichiers sources Vala pour générer un exécutable. Pour lier une bibliothèque, on utilisera l'option ''%%--pkg%% <package>'', par exemple pour compiler un programme utilisant [[wpfr>GTK+]] : | ||
- | valac source.vala -o executable --pkg gtk+-2.0 | + | valac --pkg gtk+-3.0 gtk-hello.vala |
Pour plus de détails, référez-vous à la [[:man|page de manuel]] de **valac**. | Pour plus de détails, référez-vous à la [[:man|page de manuel]] de **valac**. | ||
- | ===== Exemple de code ===== | + | ===== Exemple de code (sans dépendence à GTK) ===== |
Voici un exemple de [[wpfr>Hello World]] en Vala : | Voici un exemple de [[wpfr>Hello World]] en Vala : | ||
- | <code c#> | + | <code vala> |
using GLib; | using GLib; | ||
Ligne 52: | Ligne 52: | ||
</code> | </code> | ||
- | ===== Manipuler des objets créés avec glade dans l'edi Anjuta (ubuntu 11.10) ===== | + | ===== Liens externes ===== |
- | La seule difficulté est de comprendre qu'il faut créer des pointeurs manuellement dans la classe. | + | |
- | L'interface de développement ne les crée pas automatiquement. | + | * **(en)** [[https://wiki.gnome.org/Projects/Vala|Site officiel de Vala]] |
- | + | * **(fr)** [[wpfr>Vala (langage de programmation)|Vala sur Wikipedia]] | |
- | Puis lorsqu'on lit le fichier xml, on fait l'affectation des pointeurs. | + | |
- | + | ||
- | Fichier essai.ui | + | |
- | <code> | + | |
- | <?xml version="1.0" encoding="UTF-8"?> | + | |
- | <interface> | + | |
- | <!-- interface-requires gtk+ 2.12 --> | + | |
- | <object class="GtkWindow" id="window"> | + | |
- | <property name="visible">True</property> | + | |
- | <property name="can_focus">False</property> | + | |
- | <property name="title" translatable="yes">window</property> | + | |
- | <property name="default_width">500</property> | + | |
- | <property name="default_height">400</property> | + | |
- | <signal name="destroy" handler="main_on_destroy" swapped="no"/> | + | |
- | <child> | + | |
- | <object class="GtkFixed" id="fixed1"> | + | |
- | <property name="visible">True</property> | + | |
- | <property name="can_focus">False</property> | + | |
- | <child> | + | |
- | <object class="GtkLabel" id="label1"> | + | |
- | <property name="width_request">50</property> | + | |
- | <property name="height_request">20</property> | + | |
- | <property name="visible">True</property> | + | |
- | <property name="can_focus">False</property> | + | |
- | <property name="xalign">0</property> | + | |
- | <property name="yalign">0</property> | + | |
- | <property name="label" translatable="yes">Mon texte de départ.</property> | + | |
- | </object> | + | |
- | <packing> | + | |
- | <property name="x">26</property> | + | |
- | <property name="y">10</property> | + | |
- | </packing> | + | |
- | </child> | + | |
- | <child> | + | |
- | <object class="GtkButton" id="button1"> | + | |
- | <property name="label" translatable="yes">button</property> | + | |
- | <property name="width_request">50</property> | + | |
- | <property name="height_request">20</property> | + | |
- | <property name="visible">True</property> | + | |
- | <property name="can_focus">True</property> | + | |
- | <property name="receives_default">True</property> | + | |
- | <property name="use_action_appearance">False</property> | + | |
- | <signal name="clicked" handler="main_on_button_clicked" swapped="no"/> | + | |
- | </object> | + | |
- | <packing> | + | |
- | <property name="x">26</property> | + | |
- | <property name="y">50</property> | + | |
- | </packing> | + | |
- | </child> | + | |
- | </object> | + | |
- | </child> | + | |
- | </object> | + | |
- | </interface> | + | |
- | </code> | + | |
- | + | ||
- | Fichier essai.vala | + | |
- | <code> | + | |
- | 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 + "/" + "essai.ui"; | + | |
- | const string UI_FILE = "src/essai.ui"; | + | |
- | + | ||
- | //Mes pointeurs pour manipuler l'interface graphique | + | |
- | 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 ("window") as Window; | + | |
- | + | ||
- | //Lecture du fichier xml et affectation des pointeurs aux objets | + | |
- | //privés de la classe pour pouvoir les manipuler. | + | |
- | this.window = builder.get_object ("window") as Window; | + | |
- | this.label1 = builder.get_object ("label1") as Gtk.Label; | + | |
- | + | ||
- | window.show_all (); | + | |
- | } | + | |
- | catch (Error e) { | + | |
- | stderr.printf ("Could not load UI: %s\n", e.message); | + | |
- | } | + | |
- | + | ||
- | } | + | |
- | + | ||
- | [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 ("Bonjour Monde \n"); | + | |
- | + | ||
- | //Mes objets de classe manipuler | + | |
- | stdout.printf ( this.label1.get_text() + " \n"); | + | |
- | + | ||
- | this.label1.set_text("J'ai cliqué sur mon bouton.") ; | + | |
- | } | + | |
- | + | ||
- | static int main (string[] args) | + | |
- | { | + | |
- | Gtk.init (ref args); | + | |
- | var app = new Main (); | + | |
- | + | ||
- | Gtk.main (); | + | |
- | + | ||
- | return 0; | + | |
- | } | + | |
- | } | + | |
- | </code> | + | |
- | ===== Liens externes ===== | + | |
- | * [[http://live.gnome.org/Vala|Site officiel de Vala]] **(en)** | ||
- | * [[wpfr>Vala (langage de programmation)|Vala sur Wikipedia]] **(fr)** | ||
- | * [[http://www.wikivala.org|Wiki dédié à Vala]] Lien inexistant semble-t-il | ||
---- | ---- | ||
//Contributeurs : [[utilisateurs:Dradge|Dradge]], [[utilisateurs:Ban]], [[utilisateurs:Kriegy|Kriegy]] // | //Contributeurs : [[utilisateurs:Dradge|Dradge]], [[utilisateurs:Ban]], [[utilisateurs:Kriegy|Kriegy]] // |