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).
Tingnan natin ang tipikal na halimbawa ng Hello World !, Alin ang magiging sumusunod:
At ganito ang magiging hitsura ng code:
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:
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
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.
Kung gumawa ka ng isang mahusay na trabaho sa yugto ng disenyo, wala kang dahilan upang gumamit ng isang IDE kapag nagprogram.
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
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.
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.
Kung mayroong isang ideya na nagsasama ng isang tagalikha ng window, Anjuta IDE.
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.
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.
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.
Ang pag-update sa vala ay dapat na alisin ang babala.
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?
Sa lalong madaling panahon ay isa pang post na may isang antas na intermediate.
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.
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.