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).
Laten we eens kijken naar het typische voorbeeld van Hallo wereld! Dat zou als volgt zijn:
En de code zou er als volgt uitzien:
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:
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
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.
Als je het goed hebt gedaan in de ontwerpfase, zou je geen reden hebben om een IDE te gebruiken bij het programmeren.
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
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.
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.
Als er een idee is dat een raamontwikkelaar integreert, Anjuta IDE.
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.
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.
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.
Het updaten van vala zou de waarschuwing moeten verwijderen.
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?
Binnenkort is er weer een post met een gemiddeld niveau.
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.
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.