Eerste stappen [Vala + Gtk 3]: Hallo wereld !!

We gaan in deze kleine tutorial zien hoe we onze eerste stappen kunnen zetten met Vala en GTK3. Laten we beginnen:

De benodigde tools installeren

sudo apt-get install valac libgtk-3-dev

De IDE:

We kunnen een grote verscheidenheid aan editors vinden die we kunnen gebruiken / configureren als IDE. Voorbeelden hiervan zijn Kras, Sublieme Tekst, Geany ... In mijn geval ga ik Scratch gebruiken (die we kunnen vinden in elementaire os).

Kras

Laten we eens kijken naar het typische voorbeeld van Hallo wereld! Dat zou als volgt zijn:

Leg vast van 2013-10-31 23:33:12

En de code zou er als volgt uitzien:

Leg vast van 2013-10-31 23:34:48

Laten we nu de details van de code bekijken. We hebben een klasse die een Gtk-venster is.

# We initialiseren Gtk met argumenten Gtk.init (ref args); # We maken de applicatie. Applicatie app = nieuwe applicatie (); # We plaatsen de applicatie in het midden van het scherm. app.window_position = Gtk.WindowPosition.CENTER; # Bij het sluiten vernietigen we de app. app.destroy.connect (Gtk.main_quit); # We meten het venster app.set_default_size (100, 50); # We maken een knop en verbinden de knopklikgebeurtenis en printen een hallo! var button = new Gtk.Button.with_label ("Zeg hallo"); button.clicked.connect (() => {print ("Hallo! \ n");}); # Voeg de knop toe aan de app app.add (knop); # We tonen de App / Window app.show_all ();

Door op de knop te klikken krijgen we als output:

Leg vast van 2013-10-31 23:35:58

We compileren en voeren uit:

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

Nu laat ik enkele interessante links achter:

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


14 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   pandev92 zei

    Het probleem met het niet hebben van een idee dat vensters tekent, is dat je alle methoden van de klasse moet kennen om een ​​venster te maken, eigenlijk iets primitiefs.

    1.    genuanceerd zei

      Als je het goed hebt gedaan in de ontwerpfase, zou je geen reden hebben om een ​​IDE te gebruiken bij het programmeren.

      1.    pandev92 zei

        Je begreep me niet, ik heb het over het hebben van een idee dat het voor je zal doen, windows, zonder in principe code te hoeven typen:

        http://imagebin.org/275532

        Zo hoeft u niet te weten wat de methode is van een knop, enz. Enz

        1.    marianogaudix zei

          Met een IDE bespaart u alleen tijd …… Maar als we het hebben over functionaliteit bij het gebruik van een IDE of een TERMINAL bij het compileren, vervullen ze allebei dezelfde functies.
          Het is een kwestie van smaak en comfort.

        2.    artus zei

          Nou, je hebt Glade (https://glade.gnome.org/), is een RAD-tool waarmee u snel toepassingsvensters kunt ontwerpen met eenvoudige muisklikken.

          Zodra de interface is gemaakt, genereert deze een bestand in xml-indeling dat u kunt oproepen vanuit programmeertalen zoals C, C ++, Python, Perl, Vala, Java, enz.

          Ik hoop dat dit uw vraag beantwoordt.

        3.    lolbimbo zei

          Als er een idee is dat een raamontwikkelaar integreert, Anjuta IDE.

  2.   Juan Pablo zei

    Hallo Lolbimbo:
    Enige tijd geleden besloot ik om x redenen om Vala als mijn hoofdtaal te gebruiken voor D en Golang, maar ik zit vast in een probleem, de code die ik heel goed heb gecompileerd, maar nu krijg ik de volgende foutmelding:

    /media/…/vala/nn.vala.c: In functie 'main':
    /media/…/vala/nn.vala.c:155:2: waarschuwing: 'g_type_init' is verouderd (gedeclareerd op /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
    g_type_init();

    als het teveel moeite is, zal ik het begrijpen, bij voorbaat dank en gefeliciteerd met de blog.

    1.    lolbimbo zei

      Hallo vriend, ik begin met vala, maar geef me de code die je op regel 155 hebt, het is in ieder geval een waarschuwing, geen fout, als het voor jou werkt, gebeurt er niets omdat het een vala-bug kan zijn.

      1.    Juan Pablo zei

        Hallo Lolimbo, ik vier je enthousiasme sinds ik me eenzaam voelde in vala, in feite geeft de fout me in elke code zo simpel als: Gtk gebruiken;

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

        var window = nieuw venster ();
        window.title = "Eerste GTK + programma";
        venster.border_width = 10;
        window.window_position = VensterPositie.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var button = new Button.with_label ("Klik op mij!");
        button.clicked.connect (() => {
        button.label = "Bedankt";
        });
        proberen {
        // Ofwel rechtstreeks vanuit een bestand ...
        window.icon = nieuwe Gdk.Pixbuf.from_file ("mijn-app.png");
        //… of vanuit het thema
        window.icon = IconTheme.get_default () .load_icon ("mijn-app", 48, 0);
        } catch (fout e) {
        stderr.printf ("Kan toepassingspictogram niet laden:% s \ n", e.message);
        }
        window.add (knop);
        venster.show_all ();

        Gtk.main();
        0 terug;
        }

        Maar tussen het werken met Windows en thuis heb ik geen tijd om de fout op te sporen, het lijkt me dat het een probleem is met versies van vala, ik weet het niet.

        1.    lolbimbo zei

          Het updaten van vala zou de waarschuwing moeten verwijderen.

  3.   ubes zei

    De tutorial is goed uitgelegd en ik vind het leuk, alleen heb ik me altijd afgevraagd, waarom zou je altijd beginnen met het "hallo wereld" programma, voor beginners zou het prima zijn, maar hoe zit het met degenen die al programmeerervaring hebben? Waarom zou je niet aangeven hoe je een interface maakt met verschillende elementen (knoppen, labels, enz.)?

    Ik vind Vala leuk en ik wil het leren, maar het zou constructiever zijn om wat meer "tussendoor" te beginnen, toch?

    1.    lolbimbo zei

      Binnenkort is er weer een post met een gemiddeld niveau.

  4.   Juanra 20 zei

    Java?

    Leuke tutorial goed uitgelegd en het heeft me er eigenlijk allemaal toe aangezet om vala en gtk op mijn to-learn-lijst te zetten.

  5.   -ik- zei

    Uitstekend, nu stel ik een Seed (javascript) + Gtk-tutorial voor, het zou best interessant zijn, aangezien dit de officiële optie is die het Gnome-project heeft geselecteerd.