Abuuritaanka barnaamij Ubuntu Taabasho [QML] - [Qaybta 2]

Horudhac:

Hagaag halkan waxaan ku haynaa boostada soo socota qaybta koowaadMidkaan waxaan diirada saareynaa sida loo maareeyo xogta (su'aalaha), waxaanan ku bilaabi doonnaa qeybta macquul ee ciyaarta, tan xigta waxaan dhameystiri doonnaa caqliga oo waxaan hirgelin doonaa waqtiga iyo 3-da ikhtiyaar.

Waxaad ka heli kartaa lambarka kaydkayga Launchpad (halkan guji), halka aan ka cusbooneysiin doono intaan socdo.

Macluumaadka:

Database waxaan u isticmaali doonaa u1db, taas oo ah xog ururin keydisa xogta qaabka JSON.

Ugu horreyntii aan aragno xogta ay tahay inaan keydinno, waxaan haynaa 1 su'aal (marka laga reebo qoraalka su'aasha way fiicnaan laheyd aqoonsi), 4 jawaabood oo suurtagal ah, kuwaas oo 1 kaliya noqon karo, sidaas darteed dukumintiga JSON su'aasha keliya waa inay noqotaa:

{
"id": 1,
"pregunta": " habra dev.desdelinux.net ",
"respuestas" : { r1: "si" , r2: "no" , r3: "no se sabe" ,  r4: "esto es una respuesta falsa" },
"correcta": 3
}

Sida aan aragno waxaan u qaabeynay qaab ahaan JSON halka aan ku leenahay aqoonsi, xarig leh su'aasha iyo r1, r2 oo matala jawaabta 1 iyo jawaabta 2, ugu dambeyn waxaan heysanaa jawaabaha midkee saxan.

Aynu yar aragno sida U1db u shaqeeyo, waxa ugu horeeya ee ay tahay inaan sameyno si aan u isticmaalno U1db waa inaan soo dejino moduleka:

import U1db 1.0 as U1db

Waxaan cadeyneynaa keydka:

U1db.Database {
id: aDatabase
path: "aU1DbDatabase"
}

Macluumaadka macluumaadka waxaa loo keydinayaa aU1DbDatabase.u1db, hadda waxaan sameyneynaa dukumiinti:

U1db.Document {
id: aDocument
database: aDatabase
docId: 'helloworld'
create: true
defaults: { "hello": "Hello World!" }
}

Halka aan ku arki karno qaabka {«hello»: «wax»}, si loo fuliyo weydiimaha, ama in lagu daro xog, si loo helo xog, loo tirtiro iwm. Waxaan leenahay curiyaha U1db.

Waxaan ka heli karnaa a tutorial bogga horumarinta ee Ubuntu.

Aynu u gudubno arjigeenna oo aan abuurno xog-ururinteena, sidaan aragnay waxaan qeexeynaa keydka:

U1db.Database {id: db su'aalo; wadada: "questionsdb.u1db"}

Hagaag, haddaba aan ku dhigno qaar ka mid ah waxyaalaha aasaasiga ah dukumiintiyada keydka xogta db

    U1db.Document {
        id: aDocument
        database: preguntasdb
        docId: 'preguntas'
        create: true
        defaults: { "preguntas":
                    [
                        {"pregunta":"Habra dev.desdelinux.net ?", 
                        "r1":"si", "r2":"no", "r3":"nose", 
                        "r4":"respuesta falsa", "correcta": "3" },
                        {"pregunta":"Quien es hagrid (harry potter) ?", 
                        "r1":"El vicedirector de la escuela", 
                        "r2":"El guardabosques", 
                        "r3":"El profesor de transformaciones", 
                        "r4":"Un prefecto", 
                        "correcta": "2"},
                        {"pregunta":"¿Cúal es la capital de Islandia?", 
                       "r1":"Amsterdam",
                       "r2":"Reykjavik", 
                       "r3":"Tiflis", 
                       "r4":"Almaty",
                       "correcta": "2"}
                    ] }
    }

Waan la socdaa in koodhku sidii la rabay aan loo soo bandhigin, laakiin haddii aan si dhow u eegno waxaan arki doonnaa inaan leenahay cunsur su'aalo, taas oo leh "[]» waxaan ku qeexeynaa inay jiri karaan dhowr (ma ahan kuwo taagan) walxo; xaaladdan waxaan ku heleynaa 4 asal ahaan, 4 su'aalood oo leh jawaabahooda.

Si loo helo waxyaalaha dukumintiga JSON, waan qeexi karnaa aqoonsiga dukumintiga aan abuurnay (oo ah dukumeenti). Aynu qiyaasno inaan dooneyno inaan helno qoraalka su'aasha ugu horreysa:

aDocument.contents.su'aalo [0]. weydiin

Esta línea de código nos retorna el contenido de pregunta del documento aDocument, del elemento 0 (el primero del índice), que es: «Habra dev.desdelinux.net?». Si ponemos en el índice el número 1, entonces seáa la segunda pregunta.

Barnaamijyada macquulka ah ee ciyaarta

Hagaag, hadda markaan ognahay sida wax looga qabto wax yar oo keydka xogta ah oo aan ku keydinay su'aalaha, waxaan u qorsheyn doonnaa caqliga ciyaarta. Ugu horreyntii waxaan abuuri doonnaa feyl JavaScript (.js): Ku dar cusub -> Qt -> Js File. Waan u wacayaa caqli gal ah.

Faylka waxaan ku abuureynaa dhowr shaqooyin, si aan ugu soo galino feylka js dukumintigeena qml:

soo rar "logica.js" sida Logica

Waxaan xiriir la leenahay magaca Logica, sidaa darteed markaan rabno inaan u yeerno howl waxaan u sameyn doonnaa sida Logica.funcion (), sida haddii ay tahay shay leh qaababkiisa.

Waqtigaan la joogo, si uusan boostada u dheerayn, waxaan uga tagi doonnaa waqtiga su'aasha iyo xulashooyinka hadhow, waxaan xoogga saari doonnaa su'aalaha iyo qodobbada, aan aragno hawl aan u adeegsan doonno inaan uga gudubno su'aasha:

waxqabad nextQuestion (num) {// time = 0 question.text = aDocument.contents.questions [num] .question; resp1.text = aDocument.contents.questions [num] .r1; resp2.text = aDocument.contents.questions [num] .r2; resp3.text = aDocument.contents.questions [num] .r3; resp4.text = aDocument.contents.questions [num] .r4; }

Sida aan aragno, waxaan u gudbineynaa nambarka su'aasha halka aan dood ahaan ka taaganahay halkaana halkaan ayaan ka dhigeynaa jawaabaha badhamada iyo calaamadda su'aasha Aan aragno hadda si loo xaqiijiyo haddii jawaabta la xushay ay sax tahay:

function hit (num, option) {var hit = been; var num_correcto = aDocument.contents.questions [num] .correct; haddii (ikhtiyaar == correct_num) garaacid = run; laabashada ku dhufo; }

Koodhku isaga laftiisa ayuu u hadlayaa, haddii ay dhacdo in xulashada la doortay ay la mid tahay ta ay bixiso keydka keydka, markaa run ayey noqonaysaa, haddii kalese ma noqonayso. Hadda oo aan qeexnay shaqooyinkan, waxaan ku adeegsan doonnaa koodhkeenna qml.

Ugu horreyntii waxaannu ku dari doonnaa doorsoomaha xakameyn doona su'aasha aan ku jirno, waxaan ugu yeeri doonnaa num; Waxaan sidoo kale heli doonaa seddex doorsoomayaal kale oo badan: hits, seegis iyo dhibco.

    hantida int num: 0 hantida int waxyeellada: 0 hantida int dhalashada: 0 hantida int npoints: 0

Markii hore dhammaantood waa 0.

Hadda waxaan ku darnaa onClick dhammaan badhannada jawaabta. onClick, sida magaceedu sheegayo, waa dhacdo dhici doonta markii badhan la riixo:

            Button {id: resp1 text: "Response 1" anchors.horizontalCenter: parent.horizontalCenter width: parent.width - 20 onClicked: {if (Logic.certain (num, 1)) {num = num + 1; Logic.nextQuestion (num) npoints = npoints + 50 dhalasho = dhalasho + 1} kale {faallooyin = sababa + 1}}}

Waxaan aragnay in markaad gujiso badhanka, ay hubiso inay sax tahay iyo in kale, haddii ay tahay, ku dar qodobbada oo su'aasha dhaaf, haddii kale hal nolol ayaa hadhay.

Ugu dambayntii waxaan samayn doonnaa su'aasha ugu horreysa markii ay bogga xamuulkiisu rartaan:

    Bogga {id: pageGame Component.onCompleted: {Logic.nextPregunta (0)}

Aan aragno sida ay noqotay:

imtixaanka


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.   gabielus dijo

    Waxaan raacaa talaabooyinka wax walbana way shaqeeyaan. Kaliya inaan lashaqeeyo waxaan dhahaa:
    * Ma badalayo qiimaha ku dhufashada iyo qasaaraha. Waa inaad kudartid taas badhan kasta dhacdada gujintaada.
    * Taasna safka:
    haddii (Logic.acerto (num, 1)) {
    u beddelo 1 lambarka badhanka / jawaabta.

    lolbimbo, waxaan ka helay waxtarkaaga oo xiiso leh. Waxaan rajeynayaa tuuto cusub !!!

    Waad ku mahadsantahay wadaagista

    1.    lolbimbo dijo

      Waxaan jecelahay inaad ka faalootay qodobadan maxaa yeelay sifiican ugama aanan dhigin boostada, wixii intaa ka badan, ma xasuusto qodobada, guulaha iyo guuldarooyinka, hadaad u fiirsato waxaad arki doontaa markaan badhanka riixno, inaan ku darno qodobada guusha ... laakiin kama muuqdaan Label, taasi waa sababta aan ugu qasbeyno inaan ku dhigno qoraalkeeda si aan u tusno qodobbada:

      Calaamadda {
      id: guul darrooyinka
      qoraalka: «Khaladaadka:» + waxyeellada
      midab: "casaan"
      }

      Calaamadda {
      id: hits
      qoraalka: «Hits:» + dhashay
      }

      Calaamadda {
      id: dhibco
      qoraalka: «Dhibcaha:» + dhibco
      fontSize: "dhexdhexaad"
      }

      Waxaan sidoo kale ku cadeyn doonaa qeybta 3.