Abuuritaanka barnaamijka Vala + Gtk3. [Qaybtii 1aad]

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:

app

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;}

Qabsashada 2013-11-02 21:44:14

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 ...)


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   lozanotux dijo

    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

    1.    lolbimbo dijo

      "Qaabka" ama qoraalka ayaa isbedelay (tusaale ahaan)?

  2.   dabogal 92 dijo

    Catalan parla

  3.   yaabay dijo

    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

    1.    lolbimbo dijo

      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

  4.   Saa'uul Uribe dijo

    Wanaagsan, waan jeclahay boostada, waan ku tababbari doonaa (waxaana u arkaa inaan horay u socdo), salaan