Första stegen [Vala + Gtk 3]: Hello World !!

Vi kommer att se i denna lilla handledning hur vi tar våra första steg med Vala och GTK3. Låt oss börja:

Installera nödvändiga verktyg

sudo apt-get install valac libgtk-3-dev

IDE:

Vi kan hitta ett stort antal redaktörer som vi kan använda / konfigurera som IDE. Exempel på dem är Scratch, Sublimtext, Geany ... I mitt fall ska jag använda Scratch (som vi kan hitta i elementära operativsystem).

Scratch

Låt oss se det typiska exemplet med Hello World !, Vilket skulle vara som följer:

Fånga från 2013-10-31 23:33:12

Och koden skulle se ut så här:

Fånga från 2013-10-31 23:34:48

Låt oss nu se detaljerna i koden. Vi har en klass som är ett Gtk-fönster.

# Vi initialiserar Gtk med argumenten Gtk.init (ref args); # Vi skapar applikationen. Applikationsapp = ny applikation (); # Vi placerar applikationen mitt på skärmen. app.window_position = Gtk.WindowPosition.CENTER; # När vi stänger förstör vi appen. app.destroy.connect (Gtk.main_quit); # Vi mäter fönstret app.set_default_size (100, 50); # Vi skapar en knapp och ansluter knappklickhändelsen och skriver ut hej! var button = new Gtk.Button.with_label ("Say Hello"); button.clicked.connect (() => {print ("Hej! \ n");}); # Lägg till knappen i app-appen. Lägg till (knapp); # Vi visar App / Window app.show_all ();

Genom att klicka på knappen får vi som utdata:

Fånga från 2013-10-31 23:35:58

Vi sammanställer och utför:

$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol

Nu lämnar jag några intressanta länkar:

http://elementaryos.org/docs/code/the-basic-setup


14 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   pandev92 sade

    Problemet med att inte ha en idé som ritar fönster är att du måste känna till alla metoder i klassen för att skapa ett fönster, något primitivt, verkligen.

    1.    nyanserad sade

      Om du gjorde ett bra jobb i designfasen hade du ingen anledning att använda en IDE när du programmerade.

      1.    pandev92 sade

        Du förstod mig inte, jag pratar om att ha en idé som gör det åt dig, windows, utan att behöva skriva kod i princip:

        http://imagebin.org/275532

        Det sparar dig från att veta vad metoden för en knapp är, etc etc

        1.    marianogaudix sade

          Med en IDE sparar du bara tid ....... Men om vi pratar om funktionalitet när vi använder en IDE eller en TERMINAL när du kompilerar, har de båda samma funktioner.
          Det är en fråga om smak och komfort.

        2.    Arthur sade

          Du har Glade (https://glade.gnome.org/), är ett RAD-verktyg som låter dig snabbt designa applikationsfönster med enkla musklick.

          När gränssnittet har skapats genererar det en fil i xml-format som du kan åberopa från programmeringsspråk som C, C ++, Python, Perl, Vala, Java, etc.

          Jag hoppas att detta svarar på din fråga.

        3.    lolbimbo sade

          Om det finns en idé som integrerar en fönsterskapare, Anjuta IDE.

  2.   Juan Pablo sade

    Hej Lolbimbo:
    För en tid sedan bestämde jag mig för att använda Vala som mitt huvudspråk före D och Golang av x skäl, men jag sitter fast i ett problem, koden som jag har sammanställt mycket bra, men nu får jag följande fel:

    /media/…/vala/nn.vala.c: I funktion 'main':
    /media/…/vala/nn.vala.c:155:2: varning: 'g_type_init' är utfasad (deklareras vid /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
    g_type_init();

    om det är för mycket besvär ska jag förstå, tack på förhand och gratulationer på bloggen.

    1.    lolbimbo sade

      Hej vän, jag börjar med vala, men skicka mig koden som du har på rad 155, hur som helst är det en varning, inte ett fel, om det fungerar för dig händer ingenting eftersom det kan vara ett valabugg.

      1.    Juan Pablo sade

        Hej Lolimbo, jag firar din entusiasm eftersom jag kände mig ensam i vala, i själva verket ger felet mig i vilken kod som helst så enkelt som: att använda Gtk;

        int main (string [] args) {
        Gtk.init(ref args);

        var fönster = nytt fönster ();
        window.title = "Första GTK + -programmet";
        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 ("Click me!");
        button.clicked.connect (() => {
        button.label = "Tack";
        });
        Prova {
        // Antingen direkt från en fil ...
        window.icon = ny Gdk.Pixbuf.from_file ("min-app.png");
        // ... eller från temat
        window.icon = IconTheme.get_default () .load_icon ("min-app", 48, 0);
        } fånga (fel e) {
        stderr.printf ("Det gick inte att ladda applikationsikonen:% s \ n", e.message);
        }
        window.add (knapp);
        fönster.show_all ();

        Gtk.main();
        0 tillbaka;
        }

        Men mellan att arbeta med Windows och hemma har jag inte tid att jaga felet, det verkar för mig att det är ett problem med versioner av vala, jag vet inte.

        1.    lolbimbo sade

          Uppdatering av vala bör ta bort varningen.

  3.   urinvägar sade

    Självstudien är väl förklarad och jag gillar den, bara att jag alltid har undrat, varför alltid börja med "hej världen" -programmet, för nybörjare skulle det vara bra, men vad med dem som redan har programmeringserfarenhet? Varför inte ange hur man skapar ett gränssnitt med flera element (knappar, etiketter, etc)?

    Jag gillar Vala och jag vill lära mig det, men det skulle vara mer konstruktivt att börja lite mer "emellan", eller hur?

    1.    lolbimbo sade

      Snart kommer ytterligare ett inlägg med en mellannivå.

  4.   Juanra 20 sade

    Java?

    Trevlig handledning väl förklarad och allt fick mig att överväga att sätta vala och gtk på min lista.

  5.   -ik- sade

    Utmärkt, nu föreslår jag en Seed (javascript) + Gtk-handledning, det skulle vara ganska intressant, eftersom det här är det officiella alternativet som Gnome-projektet har valt.