Kadib boostada kowaad Waxaan aqriyay faallo ah inay fiicnaan laheyd in lagu bilaabo wax ka sii adag "hello world", ka dib waxaan sameyn doonaa isku xigxiga (3 o 4) ku dheji adigoo abuuraya codsi fudud (oo leh vala + gtk 3).
Codsigu wuxuu ka koobnaan doonaa su'aal badan oo xulasho iyo jawaabta ciyaarta ah (nooca loo yaqaan 'Trivia type'), kaas oo ka jawaabaya 3 su'aalood oo khaldan ku dhammaanaya (ciyaarta oo dhan), ujeedkuna waa in laga jawaabo su'aalaha ugu badan ee suurtogalka ah, su'aal kasta oo aad waqti ku haysato ka jawaab.
Naqshad
Naqshadda ugu weyn ee codsigeennu waxay noqon doontaa:
Mar dambe ayaan dhigi doonaa xoogaa badhano ah oo na siinaya ikhtiyaarka ah 50% (baabi'inta laba jawaabood oo qaldan), xayiraadda waqtiga, su'aal dhaaf. Dhamaantood waxaa la isticmaali karaa hal mar, iyadoo la curyaaminayo mar la isticmaali karo
Naqshadeynta a Code
Sida aan ku arki karno naqshadeynta waxaan arki karnaa walxaha gtk ee aan u adeegsan doonno:
Jawaabaha -> Badhanka.
Su'aal -> Summad.
Waqtiga -> ProgressBar.
Qodobo qaldan / saxan iyo Su'aalo -> Calaamadee.
Waan arki karnaa inaan leenahay qaab dhismeed taagan sidaa darteed waxaan u isticmaali karnaa GBox si qumman.
Code
int main (string [] args) {Gtk.init (Ref args); var window = Gtk.Window cusub (); window.title = "app"; window.window_position = Gtk.WindowPosition.CENTER; daaqadda .set_default_size (300, 340); daaqada.destroy.connect (Gtk.main_quit); daaqadda.set_border_width (10); // sanduuqa toosan ee sanduuqa var = Gtk.Box cusub (Gtk.Orientation.VERTICAL, 0); Booska.set_spacing (10); // Calaamadeynta su'aasha var su'aal = cusub Gtk.Label ("Su'aal?"); // barnaamijka waqtiga waxqabadka var time_bar = cusub Gtk.ProgressBar (); timebar.set_text ("Waqti"); time_bar.set_show_text (run); // Badhamada jawaabta var response1 = cusub Gtk.Button.with_label ("Jawaab 1"); var resposta2 = cusub Gtk.Button.with_label ("Jawaab 2"); var resposta3 = cusub Gtk.Button.with_label ("Jawaab 3"); var resposta4 = cusub Gtk.Button.with_label ("Jawaab 4"); // sumadaha info var dhibcood = cusub Gtk.Label ("Points: 0"); box.pack_start (su'aal); sanduuqa.pack_start (waqtiga_bar); sanduuqa.pack_start (reply1); sanduuqa.pack_start (resposta2); sanduuqa.pack_start (resposta3); sanduuqa.pack_start (resposta4); sanduuqa.pack_start (dhibco); daaqada.add (sanduuqa); daaqada.ooga muuqan (); Gtk.main (); laabo 0;}
Si aan u dhaqaaqno "waqtiga" waxaan isticmaalnaa GLib. Waqtiga la bixinayo oo ah halkii 500 milisekond kasta oo la hawlgalin doono (waa loop halka doorsoomaha ku jira qiimaha baarkayagu uu kordhayo)
GLib.Timeout.add (500, () => {// Hel horumarka hadda socda: // (0.0 -> 0%; 1.0 -> 100%) labalaab horumar = time_bar.get_fraction (); // Cusboonaysii baarka: horumarka = horumarka + 0.01; time_bar.set_fraction (horumarka); // Ku celi illaa 100% soo celinta horumarka <1.0;});
Xiriirinta xiisaha
http://www.valadoc.org/#!wiki=index (waxaad ka heli kartaa dhammaan walxaha gtk qaababkooda ...)
Aad u fiican, aan ku weydiiyee sideen u sameysan karaa nooc TABS ah laakiin toosan, in kasta oo aysan qasab ahayn inay noqdaan tab, waxay noqon karaan badhanno ama ToggleButton, laakiin waxaan u baahanahay dhaqanka tab, oo ah markaan taabto 1 waxyaabaha ay ka kooban tahay waa la arki karaa oo tabka kale waa naafo yahay, ma aqaano haddii aan sharraxaad ka bixinayo, waxaan uga tagay sawir si aan u arko haddii aad isiin karto xoogaa macluumaad ah oo aan ku baaro. Mahadsanid!
MUUQAAL: http://i.imm.io/1jURw.png
"Qaabka" ama qoraalka ayaa isbedelay (tusaale ahaan)?
Catalan parla
Tani aad ayey u wanaagsan tahay runtiina waa wax la mid ah wixii aan raadinayey, su'aal, su'aashan ma lala xiriirin karaa terminaalka si uun?
Tusaale ahaan: Markaan bilaabayo waxaan qaadanayaa waqti aan ku jawaabo waxaan uga tagayaa si aan xad lahayn taasna waxay noqon doontaa waxaan jeclaan lahaa inaan sameeyo.
Waa maxay jawiga desktop ee aad rabto inaad rakibato?
KDE
Gnome 3
Qoraxda
Midnimada
Iyo mid kasta oo kuwan ka mid ah oo ku xirnaa amarkiisa rakibidda ee terminalka, sudo apt-get rakib ubuntu-desktop
Haa, waa inaad qortaa Process.spawn_command_line_async ("apt-get install ubuntu-desktop");
http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync
Wanaagsan, waan jeclahay boostada, waan ku tababbari doonaa (waxaana u arkaa inaan horay u socdo), salaan