Nakon prvi post Pročitao sam komentar da bi bilo bolje započeti s nečim složenijim od "zdravo svijeta", tada ću napraviti sekvencu (O 3 4) post koji stvara jednostavnu aplikaciju (s vala + gtk 3).
Aplikacija će se sastojati od jednostavne igre s višestrukim izborom pitanja i odgovora (vrsta Trivia), u kojoj se odgovor na 3 pitanja pogrešno završava (igra je gotova), a cilj je odgovoriti na što više pitanja, za svako pitanje imate ograničeno vrijeme odgovoriti.
Dizajn
Glavni dizajn naše aplikacije bit će:
Kasnije ćemo staviti neke tipke koje će nam dati mogućnost 50% (uklanjajući dva pogrešna odgovora), zamrznuti vrijeme i proslijediti pitanje. Svi se oni mogu koristiti samo jednom, a jednom se onemogućuju.
Dizajn a Šifra
Kao što možemo vidjeti u dizajnu, možemo vidjeti gtk elemente koje ćemo koristiti:
Odgovori -> Gumb.
Pitanje -> Oznaka.
Vrijeme -> ProgressBar.
Pogrešne / ispravne točke i pitanja -> Oznaka.
Vidimo da imamo vertikalnu strukturu, stoga GBox možemo koristiti vertikalno.
Šifra
int main (string [] args) {Gtk.init (ref args); var prozor = novi Gtk.Window (); window.title = "aplikacija"; window.window_position = Gtk.WindowPosition.CENTER; window.set_default_size (300, 340); window.destroy.connect (Gtk.main_quit); window.set_border_width (10); // okomiti okvir var box = novi Gtk.Box (Gtk.Orientation.VERTICAL, 0); box.set_spacing (10); // Oznaka za pitanje var question = new Gtk.Label ("Pitanje?"); // traka vremenskog programa var time_bar = new Gtk.ProgressBar (); timebar.set_text ("Vrijeme"); time_bar.set_show_text (true); // Gumbi za odgovor var response1 = new Gtk.Button.with_label ("Response 1"); var resposta2 = novi Gtk.Button.with_label ("Odgovor 2"); var resposta3 = novi Gtk.Button.with_label ("Odgovor 3"); var resposta4 = novi Gtk.Button.with_label ("Odgovor 4"); // označava info var points = new Gtk.Label ("Bodovi: 0"); box.pack_start (pitanje); box.pack_start (time_bar); box.pack_start (odgovor1); box.pack_start (resposta2); box.pack_start (resposta3); box.pack_start (resposta4); box.pack_start (bodovi); window.add (kutija); window.show_all (); Gtk.main (); povratak 0;}
Za pomicanje "vremena" koristimo GLib.Timeout gdje će se aktivirati svakih 500 milisekundi (to je petlja u kojoj će se povećavati varijabla koja sadrži vrijednost naše trake)
GLib.Timeout.add (500, () => {// Dohvatite trenutni napredak: // (0.0 -> 0%; 1.0 -> 100%) double progress = time_bar.get_fraction (); // Ažurirajte traku: progress = progress + 0.01; time_bar.set_fraction (progress); // Ponavljamo dok 100% ne vrati napredak <1.0;});
Veze od interesa
http://www.valadoc.org/#!wiki=index (sve gtk elemente možete pronaći s njihovim metodama ...)
Vrlo dobro, pitat ću vas kako mogu napraviti neku vrstu TABS-a, ali okomito, iako ne moraju nužno biti kartice, to mogu biti gumbi ili ToggleButtons, ali trebam ponašanje kartice koja prilikom dodirivanja 1 njenog sadržaja se vidi, a druga kartica je onemogućena, ne znam da li se objašnjavam, ostavljam sliku da vidim možete li mi dati neke informacije za istraživanje. Hvala vam!
SLIKA: http://i.imm.io/1jURw.png
"Izgled" ili promjena teksta (na primjer)?
Katalonski parla
Ovo je jako dobro, zapravo, nešto je slično onome što sam tražio, pitanje, može li se ovo pitanje na neki način povezati s terminalom?
Na primjer: Za početak uzimam vremena za odgovor, ostavljam ga neograničeno i to bi bilo ono što bih želio učiniti.
Koje radno okruženje želite instalirati?
KDE
Gnom 3
Cimet
Jedinstvo
I svaka od njih koja je bila povezana s odgovarajućom instalacijskom naredbom u terminalu, sudo apt-get install ubuntu-desktop
Da, samo biste morali napisati Process.spawn_command_line_async ("apt-get install ubuntu-desktop");
http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync
Izvrsno, sviđa mi se post, vježbat ću (i radujem mu se), pozdrav