Mga unang hakbang [Vala + Gtk 3]: Hello World !!

Makikita natin sa maliit na tutorial na ito kung paano gawin ang aming mga unang hakbang sa Vala at GTK3. Magsimula na tayo:

Pag-install ng mga kinakailangang tool

sudo apt-get install valac libgtk-3-dev

Ang IDE:

Maaari kaming makahanap ng maraming iba't ibang mga editor na maaari naming magamit / i-configure bilang IDE. Halimbawa ng mga ito ay Sulatin nang padaskul-daskol at madalian, SublimeTeksto, Geany ... Sa aking kaso gagamitin ko ang Scratch (na maaari nating hanapin sa elementarya os).

Sulatin nang padaskul-daskol at madalian

Tingnan natin ang tipikal na halimbawa ng Hello World !, Alin ang magiging sumusunod:

Makunan mula 2013-10-31 23:33:12

At ganito ang magiging hitsura ng code:

Makunan mula 2013-10-31 23:34:48

Tingnan natin ngayon ang mga detalye ng code. Mayroon kaming isang klase na kung saan ay isang Gtk window.

# Pinasimulan namin ang Gtk na may mga argumentong Gtk.init (ref args); # Lumilikha kami ng application. Application app = bagong Application (); # Inilagay namin ang application sa gitna ng screen. app.window_position = Gtk.WindowPosition.CENTER; # Kapag nagsasara ay sinisira namin ang app. app.destroy.connect (Gtk.main_quit); # Sinusukat namin ang window app.set_default_size (100, 50); # Lumilikha kami ng isang pindutan at ikonekta ang kaganapan sa pag-click sa pindutan at mag-print ng isang hello! var button = bagong Gtk.Ngunit.with_label ("Say Hello"); button.clicked.connect (() => {print ("Hello! \ n");}); # Idagdag ang pindutan sa app app.add (pindutan); # Ipinapakita namin ang App / Window app.show_all ();

Sa pamamagitan ng pag-click sa pindutan makukuha namin bilang output:

Makunan mula 2013-10-31 23:35:58

Pinagsasama-sama namin at isinasagawa:

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

Iniwan ko sa iyo ang ilang mga link ng interes:

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


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   pandev92 dijo

    Ang problema sa walang isang ideyang gumuhit ng mga bintana ay dapat mong malaman ang lahat ng mga pamamaraan ng klase upang lumikha ng isang window, isang bagay na primitive, talaga.

    1.    nuanced dijo

      Kung gumawa ka ng isang mahusay na trabaho sa yugto ng disenyo, wala kang dahilan upang gumamit ng isang IDE kapag nagprogram.

      1.    pandev92 dijo

        Hindi mo ako naiintindihan, nagsasalita ako tungkol sa pagkakaroon ng isang ideya na gagawin ito para sa iyo, mga bintana, nang hindi kinakailangang mag-type ng code sa prinsipyo:

        http://imagebin.org/275532

        I-save ka mula sa pag-alam kung ano ang pamamaraan ng isang pindutan, atbp atbp

        1.    marianogaudix dijo

          Sa isang IDE makatipid ka lamang ng oras ...… Ngunit kung pag-uusapan natin ang tungkol sa pag-andar kapag gumagamit ng isang IDE o isang TERMINAL kapag nag-iipon, kapwa nila tinutupad ang parehong mga pag-andar.
          Ito ay usapin ng panlasa at ginhawa.

        2.    artus dijo

          Well mayroon kang Glade (https://glade.gnome.org/), ay isang RAD tool na nagbibigay-daan sa mabilis mong pagdisenyo ng mga window ng application na may simpleng pag-click sa mouse.

          Sa sandaling nalikha ang interface, bumubuo ito ng isang file sa format na xml na maaari mong makuha mula sa mga wika ng programa tulad ng C, C ++, Python, Perl, Vala, Java, atbp.

          Inaasahan kong sagutin nito ang iyong katanungan.

        3.    lolbimbo dijo

          Kung mayroong isang ideya na nagsasama ng isang tagalikha ng window, Anjuta IDE.

  2.   Juan Pablo dijo

    Kumusta Lolbimbo:
    Ilang oras ang nakalipas napagpasyahan kong gamitin ang Vala bilang aking pangunahing wika bago ang D at Golang para sa mga kadahilanang x, ngunit natigil ako sa isang problema, ang code na naayos ko nang maayos, ngunit ngayon nakuha ko ang sumusunod na error:

    /media/…/vala/nn.vala.c: Sa pagpapaandar na 'pangunahing':
    /media/…/vala/nn.vala.c: 155: babala: 'g_type_init' ay hindi na ginagamit (idineklara sa /usr/include/glib-2/gobject/gtype.h:2.0) [-Wdeprecated-deklarasyon]
    g_type_init();

    kung ito ay sobrang pag-unawa maintindihan ko, salamat nang maaga at pagbati sa blog.

    1.    lolbimbo dijo

      Kumusta kaibigan, nagsisimula ako sa vala, ngunit ipasa sa akin ang code na mayroon ka sa linya na 155, gayon pa man ito ay isang babala, hindi isang error, kung gumagana ito para sa iyo, walang nangyayari dahil maaaring ito ay isang vala bug.

      1.    Juan Pablo dijo

        Kumusta Lolimbo, ipinagdiriwang ko ang iyong sigasig dahil naramdaman kong nag-iisa ako sa vala, sa katunayan ang error ay nagbibigay sa akin sa anumang code na kasing simple ng: paggamit ng Gtk;

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

        var window = bagong Window ();
        window.title = "First GTK + Program";
        window.border_width = 10;
        window.window_position = WindowPosition.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var button = bagong Button.with_label ("I-click sa akin!");
        button.clicked.connect (() => {
        button.label = "Salamat";
        });
        subukan {
        // Alinman nang direkta mula sa isang file ...
        window.icon = bagong Gdk.Pixbuf.from_file ("my-app.png");
        // ... o mula sa tema
        window.icon = IconTheme.get_default () .load_icon ("my-app", 48, 0);
        } catch (Error e) {
        stderr.printf ("Hindi ma-load ang icon ng application:% s \ n", e.message);
        }
        window.add (pindutan);
        window.show_all();

        Gtk.main();
        0 bumalik;
        }

        Ngunit sa pagitan ng pagtatrabaho sa Windows at sa bahay, wala akong oras upang manghuli ng error, para sa akin ito ay isang problema sa mga bersyon ng vala, hindi ko alam.

        1.    lolbimbo dijo

          Ang pag-update sa vala ay dapat na alisin ang babala.

  3.   mga urib dijo

    Maayos na ipinaliwanag ang tutorial at gusto ko ito, palagi kong naisip, kung bakit palaging nagsisimula sa programang "hello world", para sa mga nagsisimula magiging maayos ito, ngunit kumusta naman ang mga mayroon nang karanasan sa programa? Bakit hindi ipahiwatig kung paano gumawa ng isang interface na may maraming mga elemento (mga pindutan, label, atbp)?

    Gusto ko ng Vala at nais kong malaman ito, ngunit magiging mas nakabubuti upang magsimula ng kaunti pa "sa pagitan", tama?

    1.    lolbimbo dijo

      Sa lalong madaling panahon ay isa pang post na may isang antas na intermediate.

  4.   juanra20 dijo

    Java?

    Maayos na ipinaliwanag ang mahusay na tutorial at ang lahat ng ito ay talagang nagpahiwatig sa akin ng paglalagay ng vala at gtk sa aking listahan na dapat matutunan.

  5.   -ik- dijo

    Mahusay, ngayon iminumungkahi ko ang isang Binhi (javascript) + Gtk tutorial, magiging kawili-wili ito, dahil ito ang opisyal na pagpipilian na pinili ng proyekto ng Gnome.