Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
vala [Le 24/03/2013, 13:25] – [Liens externes] 83.36.193.18vala [Le 07/08/2023, 12:36] (Version actuelle) – [Liens externes] MAJ hyperlien spnux
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]] //