Pierwsze kroki [Vala + Gtk 3]: Witaj świecie !!

W tym małym samouczku zobaczymy, jak stawiać pierwsze kroki z Vala i GTK3. Zacznijmy:

Instalowanie niezbędnych narzędzi

sudo apt-get install valac libgtk-3-dev

IDE:

Możemy znaleźć wiele różnych edytorów, których możemy używać / konfigurować jako IDE. Przykładem jest Scratch, Wysublimowany tekst, Geany … W moim przypadku użyję Scratch (które możemy znaleźć w elementarnym os).

Scratch

Zobaczmy typowy przykład Hello World !, który wyglądałby następująco:

Przechwytywanie z 2013 10:31:23

A kod wyglądałby tak:

Przechwytywanie z 2013 10:31:23

Zobaczmy teraz szczegóły kodu. Mamy klasę, która jest oknem Gtk.

# Inicjalizujemy Gtk z argumentami Gtk.init (ref args); # Tworzymy aplikację. Aplikacja aplikacji = nowa Aplikacja (); # Umieściliśmy aplikację na środku ekranu. app.window_position = Gtk.WindowPosition.CENTER; # Podczas zamykania niszczymy aplikację. app.destroy.connect (Gtk.main_quit); # Mierzymy okno app.set_default_size (100, 50); # Tworzymy przycisk i łączymy zdarzenie kliknięcia przycisku i drukujemy cześć! var button = new Gtk.Button.with_label ("Przywitaj się"); button.clicked.connect (() => {print ("Witaj! \ n");}); # Dodaj przycisk do aplikacji app.add (przycisk); # Pokazujemy App / Window app.show_all ();

Klikając na przycisk otrzymamy jako wynik:

Przechwytywanie z 2013 10:31:23

Kompilujemy i wykonujemy:

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

Teraz zostawiam kilka interesujących linków:

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


14 komentarzy, zostaw swoje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   pandev92 powiedział

    Problem z brakiem ide, który rysuje okna polega na tym, że musisz znać wszystkie metody klasy, aby utworzyć okno, naprawdę coś prymitywnego.

    1.    dopracowany powiedział

      Jeśli wykonałeś dobrą robotę na etapie projektowania, nie miałbyś powodu, aby używać IDE podczas programowania.

      1.    pandev92 powiedział

        Nie zrozumieliście mnie, mówię o posiadaniu pomysłu, który zrobi to za Was okna, bez konieczności wpisywania kodu w zasadzie:

        http://imagebin.org/275532

        Dzięki temu nie musisz wiedzieć, jaka jest metoda przycisku itp

        1.    marianogaudiks powiedział

          Dzięki IDE oszczędzasz tylko czas …… Ale jeśli mówimy o funkcjonalności podczas używania IDE lub TERMINALA podczas kompilacji, oba spełniają te same funkcje.
          To kwestia gustu i wygody.

        2.    artus powiedział

          Cóż, masz Glade (https://glade.gnome.org/), to narzędzie RAD, które umożliwia szybkie projektowanie okien aplikacji za pomocą prostych kliknięć myszą.

          Po utworzeniu interfejsu generuje plik w formacie xml, który można wywołać z języków programowania, takich jak C, C ++, Python, Perl, Vala, Java itp.

          Mam nadzieję, że to odpowiada na twoje pytanie.

        3.    lolbimbo powiedział

          Jeśli istnieje pomysł, który integruje kreatora okien, Anjuta IDE.

  2.   Juan Pablo powiedział

    Witam Lolbimbo:
    Jakiś czas temu zdecydowałem się użyć Vala jako mojego głównego języka przed D i Golang z x powodów, ale utknąłem w problemie, kod, który skompilowałem bardzo dobrze, ale teraz pojawia się następujący błąd:

    /media/…/vala/nn.vala.c: W funkcji „main”:
    /media/…/vala/nn.vala.c:155:2: warning: 'g_type_init' jest przestarzałe (zadeklarowane w /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
    g_type_init();

    jeśli to za dużo kłopotów to zrozumiem, z góry dziękuję i gratuluję na blogu.

    1.    lolbimbo powiedział

      Witaj przyjacielu, zaczynam od vala, ale podaj mi kod, który masz w linii 155, zresztą jest to ostrzeżenie, a nie błąd, jeśli to działa, nic się nie dzieje, ponieważ może to być błąd vala.

      1.    Juan Pablo powiedział

        Witaj Lolimbo, świętuję twój entuzjazm, ponieważ czułem się samotny w vala, właściwie błąd jest podawany mi w każdym kodzie tak prostym jak: używanie Gtk;

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

        var window = nowe okno ();
        window.title = "Pierwszy program GTK +";
        szerokość_okna.obramowania = 10;
        window.window_position = WindowPosition.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var button = new Button.with_label ("Kliknij mnie!");
        button.clicked.connect (() => {
        button.label = "Dziękuję";
        });
        spróbuj {
        // Albo bezpośrednio z pliku ...
        window.icon = nowy Gdk.Pixbuf.from_file ("my-app.png");
        //… lub z motywu
        window.icon = IconTheme.get_default () .load_icon ("moja-aplikacja", 48, 0);
        } catch (błąd e) {
        stderr.printf ("Nie można załadować ikony aplikacji:% s \ n", e.message);
        }
        window.add (przycisk);
        okno.pokaż_wszystko ();

        Gtk.main();
        0 wrócić;
        }

        Ale między pracą z Windowsem a pracą w domu nie mam czasu na wytropienie błędu, wydaje mi się, że jest to problem z wersjami vala, nie wiem.

        1.    lolbimbo powiedział

          Aktualizacja vala powinna usunąć ostrzeżenie.

  3.   uryby powiedział

    Samouczek jest dobrze wyjaśniony i mi się podoba, tyle że zawsze się zastanawiałem, dlaczego zawsze zaczynać od programu „hello world”, dla początkujących byłoby dobrze, ale co z tymi, którzy mają już doświadczenie w programowaniu? Dlaczego nie wskazać, jak stworzyć interfejs z kilkoma elementami (przyciski, etykiety itp.)?

    Lubię Vala i chcę się jej nauczyć, ale bardziej konstruktywne byłoby rozpoczęcie czegoś więcej „pomiędzy”, prawda?

    1.    lolbimbo powiedział

      Wkrótce kolejny post na poziomie średniozaawansowanym.

  4.   juanra20 powiedział

    Jawa?

    Fajny tutorial, dobrze wyjaśniony i wszystko sprawiło, że rozważyłem umieszczenie vala i gtk na mojej liście rzeczy do nauczenia.

  5.   -ik- powiedział

    Świetnie, proponuję teraz tutorial Seed (javascript) + Gtk, byłby całkiem interesujący, ponieważ jest to oficjalna opcja wybrana przez projekt Gnome.