Premiers pas [Vala + Gtk 3]: Hello World !!

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).

Scratch

Voyons l'exemple typique de Hello World !, qui serait le suivant:

Capture du 2013/10/31 23:33:12

Et le code ressemblerait à ceci:

Capture du 2013/10/31 23:34:48

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:

Capture du 2013/10/31 23:35:58

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


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   pandev92 dit

    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.

    1.    nuancé dit

      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.

      1.    pandev92 dit

        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.

        1.    marianogaudix dit

          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.

        2.    Arthur dit

          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.

        3.    lolbimbo dit

          S'il y a une idée qui intègre un créateur de fenêtre, Anjuta IDE.

  2.   Juan Pablo dit

    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.

    1.    lolbimbo dit

      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.

      1.    Juan Pablo dit

        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.

        1.    lolbimbo dit

          La mise à jour de vala devrait supprimer l'avertissement.

  3.   Uribes dit

    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?

    1.    lolbimbo dit

      Bientôt, un autre poste de niveau intermédiaire.

  4.   juanra20 dit

    Java?

    Beau tutoriel bien expliqué et tout m'a fait envisager de mettre vala et gtk sur ma liste à apprendre.

  5.   -ik- dit

    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.