Vi kommer til å se i denne lille opplæringen hvordan vi tar våre første skritt med Vala og GTK3. La oss komme i gang:
Installere nødvendige verktøy
sudo apt-get install valac libgtk-3-dev
IDE:
Vi kan finne et stort utvalg av redaktører som vi kan bruke / konfigurere som IDE. Eksempel på dem er Skrap, SublimeTekst, Geany ... I mitt tilfelle skal jeg bruke Scratch (som vi kan finne i elementær os).
La oss se det typiske eksemplet på Hello World !, Som vil være som følger:
Og koden vil se slik ut:
La oss nå se detaljene i koden. Vi har en klasse som er et Gtk-vindu.
# Vi initialiserer Gtk med argumenter Gtk.init (ref args); # Vi oppretter applikasjonen. Applikasjonsapp = ny applikasjon (); # Vi setter applikasjonen midt på skjermen. app.window_position = Gtk.WindowPosition.CENTER; # Når vi lukker ødelegger vi appen. app.destroy.connect (Gtk.main_quit); # Vi måler vinduet app.set_default_size (100, 50); # Vi oppretter en knapp og kobler knappeklikkningshendelsen og skriver ut hei! var-knapp = ny Gtk.Button.with_label ("Si hei"); button.clicked.connect (() => {print ("Hei! \ n");}); # Legg til knappen i app-appen. Legg til (knapp); # Vi viser App / Window app.show_all ();
Ved å klikke på knappen får vi som utgang:
Vi kompilerer og utfører:
$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol
Nå lar jeg deg noen lenker av interesse:
http://elementaryos.org/docs/code/the-basic-setup
Problemet med å ikke ha et ide som tegner vinduer er at du må kjenne til alle metodene i klassen for å lage et vindu, noe primitivt, egentlig.
Hvis du gjorde en god jobb i designfasen, ville du ikke ha noen grunn til å bruke IDE når du programmerer.
Du forstod meg ikke, jeg snakker om å ha en idé som vil gjøre det for deg, windows, uten å måtte skrive kode i prinsippet:
http://imagebin.org/275532
Det sparer deg for å vite hva metoden for en knapp er osv. Osv
Med en IDE sparer du bare tid ... Men hvis vi snakker om funksjonalitet når du bruker en IDE eller en TERMINAL når du kompilerer, utfører de begge de samme funksjonene.
Det er et spørsmål om smak og komfort.
Vel, du har Glade (https://glade.gnome.org/), er et RAD-verktøy som lar deg raskt designe applikasjonsvinduer med enkle museklikk.
Når grensesnittet er opprettet, genererer det en fil i xml-format som du kan påkalle fra programmeringsspråk som C, C ++, Python, Perl, Vala, Java, etc.
Jeg håper dette svarer på spørsmålet ditt.
Hvis det er en idé som integrerer en vindusskaper, Anjuta IDE.
Hei Lolbimbo:
For en tid siden bestemte jeg meg for å bruke Vala som hovedspråk før D og Golang av x grunner, men jeg sitter fast i et problem, koden jeg har samlet veldig bra, men nå får jeg følgende feil:
/media/…/vala/nn.vala.c: I funksjonen 'main':
/media/…/vala/nn.vala.c:155:2: advarsel: 'g_type_init' er utfaset (erklært på /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
g_type_init();
hvis det er for mye trøbbel vil jeg forstå, takk på forhånd og gratulerer med bloggen.
Hei venn, jeg begynner med vala, men gi meg koden du har på linje 155, uansett er det en advarsel, ikke en feil, hvis det fungerer for deg, skjer det ingenting siden det kan være en valabug.
Hei Lolimbo, jeg feirer din entusiasme siden jeg følte meg ensom i vala, faktisk blir feilen gitt til meg i hvilken som helst kode så enkel som: å bruke Gtk;
int main (streng [] args) {
Gtk.init(ref args);
var vindu = nytt vindu ();
window.title = "Første GTK + -program";
window.border_width = 10;
window.window_position = WindowPosition.CENTER;
window.set_default_size(350, 70);
window.destroy.connect(Gtk.main_quit);
var-knapp = ny Button.with_label ("Klikk meg!");
button.clicked.connect (() => {
button.label = "Takk";
});
prøv {
// Enten direkte fra en fil ...
window.icon = ny Gdk.Pixbuf.from_file ("min-app.png");
// ... eller fra temaet
window.icon = IconTheme.get_default () .load_icon ("min app", 48, 0);
} fangst (feil e) {
stderr.printf ("Kunne ikke laste applikasjonsikon:% s \ n", e.message);
}
window.add (knapp);
window.show_all();
Gtk.main();
0 tilbake;
}
Men mellom å jobbe med Windows og hjemme har jeg ikke tid til å jakte på feilen, det virker for meg at det er et problem med versjoner av vala, jeg vet ikke.
Oppdatering av vala bør fjerne advarselen.
Opplæringen er godt forklart, og jeg liker den, bare det at jeg alltid har lurt på, hvorfor alltid starte med "hallo verden" -programmet, for nybegynnere vil det være greit, men hva med de som allerede har erfaring med programmering? Hvorfor ikke indikere hvordan du lager et grensesnitt med flere elementer (knapper, etiketter osv.)?
Jeg liker Vala, og jeg vil lære det, men det ville vært mer konstruktivt å starte litt mer "imellom", ikke sant?
Snart er det nok et innlegg med mellomnivå.
Java?
Fin opplæring godt forklart, og alt fikk meg til å vurdere å sette vala og gtk på listen min over ting å lære.
Utmerket, nå foreslår jeg en Seed (javascript) + Gtk tutorial, det ville være ganske interessant, da dette er det offisielle alternativet som Gnome-prosjektet har valgt.