Pēc pirmais ziņojums Es izlasīju komentāru, ka labāk būtu sākt ar kaut ko sarežģītāku nekā "sveika pasaule", tad es izveidošu secību (O 3 4), izveidojot vienkāršu lietojumprogrammu (ar vala + gtk 3).
Pieteikums sastāvēs no vienkāršas atbilžu un atbilžu spēles (nieki), kurā atbildes uz 3 jautājumiem beidzas nepareizi (spēle ir beigusies), un mērķis ir atbildēt uz pēc iespējas vairāk jautājumiem, uz katru jautājumu jums ir ierobežots laiks. Atbildēt.
Dizains
Mūsu pieteikuma galvenais dizains būs:
Vēlāk mēs ievietosim dažas pogas, kas mums dos iespēju izvēlēties 50% (izslēdzot divas nepareizas atbildes), iesaldēt laiku, nodot jautājumu. Visus tos var izmantot tikai vienu reizi, vienreiz tos atspējot.
Dizains a Kods
Kā redzam dizainā, mēs varam redzēt gtk elementus, kurus izmantosim:
Atbildes -> Poga.
Jautājums -> etiķete.
Laiks -> ProgressBar.
Nepareizi / pareizi punkti un jautājumi -> etiķete.
Mēs varam redzēt, ka mums ir vertikāla struktūra, tāpēc mēs varam izmantot GBox vertikāli.
Kods
int main (string [] args) {Gtk.init (ref args); var logs = jauns Gtk.Window (); window.title = "lietotne"; window.window_position = Gtk.WindowPosition.CENTER; window.set_default_size (300, 340); window.destroy.connect (Gtk.main_quit); window.set_border_width (10); // vertikālā lodziņa var box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); box.set_spacing (10); // Iezīme jautājumam var question = new Gtk.Label ("Jautājums?"); // progresīvā laika josla var time_bar = new Gtk.ProgressBar (); timebar.set_text ("Laiks"); time_bar.set_show_text (true); // Atbildes pogas var response1 = new Gtk.Button.with_label ("1. atbilde"); var resposta2 = new Gtk.Button.with_label ("Atbildēt 2"); var resposta3 = new Gtk.Button.with_label ("Atbildēt 3"); var resposta4 = new Gtk.Button.with_label ("Atbildēt 4"); // iezīmē info var points = new Gtk.Label ("Punkti: 0"); box.pack_start (jautājums); box.pack_start (laika josla); box.pack_start (atbilde1); box.pack_start (resposta2); box.pack_start (resposta3); box.pack_start (resposta4); box.pack_start (punkti); window.add (lodziņš); window.show_all (); Gtk.main (); atgriezt 0;}
Lai pārvietotu "laiku", mēs izmantojam GLib.Timeout, kad tas tiks aktivizēts ik pēc 500 milisekundēm (tā ir cilpa, kurā palielināsies mainīgais, kas satur mūsu joslas vērtību)
GLib.Timeout.add (500, () => {// Iegūt pašreizējo progresu: // (0.0 -> 0%; 1.0 -> 100%) dubultā progress = time_bar.get_fraction (); // Atjauniniet joslu: progress = progress + 0.01; time_bar.set_fraction (progress); // atkārtot līdz 100% atgriešanās progress <1.0;});
Interešu saites
http://www.valadoc.org/#!wiki=index (jūs varat atrast visus gtk elementus ar viņu metodēm ...)
Ļoti labi, es jums jautāšu, kā es varu izveidot sava veida cilnes, bet vertikāli, lai gan tām nav obligāti jābūt cilnēm, tās var būt pogas vai ToggleButtons, bet man ir nepieciešama cilnes uzvedība, ka, pieskaroties 1 tās saturam ir redzams un otra cilne ir atspējota, es nezinu, vai es paskaidroju pats, es atstāju attēlu, lai redzētu, vai jūs varat man sniegt kādu informāciju izmeklēšanai. Paldies!
ATTĒLS: http://i.imm.io/1jURw.png
«Izkārtojums» vai teksts mainās (piemēram)?
Katalāņu parla
Tas ir ļoti labi, patiesībā tas ir kaut kas līdzīgs tam, ko es meklēju, jautājums, vai šo jautājumu varētu kaut kādā veidā saistīt ar termināli?
Piemēram: Vispirms es atvēlu laiku, lai atbildētu. Es to atstāju neierobežotu, un tas būtu tas, ko es vēlētos darīt.
Kādu darbvirsmas vidi vēlaties instalēt?
KDE
Gnome 3
Kanēlis
Vienotība
Un katrs no tiem, kas bija saistīts ar tā atbilstošo instalēšanas komandu terminālā, sudo apt-get install ubuntu-desktop
Jā, jums vienkārši jāuzraksta Process.spawn_command_line_async ("apt-get install ubuntu-desktop");
http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync
Izcili, man patīk ziņa, es praktizēšos (un ar nepacietību gaidu), sveicienus