Irƙirar app don Ubuntu Touch [QML] - [Sashe na 2]

Gabatarwa:

To a nan muna da matsayi wanda ke biye da bangare na farkoA cikin wannan za mu mai da hankali kan sarrafa bayanai (tambayoyin), kuma za mu fara da ɓangaren dabaru na wasan, a na gaba za mu gama ma'ana da aiwatar da lokaci da zaɓuɓɓukan 3.

Kuna iya samun lambar a cikin ma'ajiyar Launchpad na (Latsa nan), inda zan sabunta shi yayin da nake tafiya.

Bayanai:

Don bayanan da za mu yi amfani da shi ku 1db, wanda shine matattarar bayanai wanda ke adana bayanan a cikin tsari JSON.

Da farko bari mu ga waɗanne bayanai ne ya kamata mu adana, muna da tambaya guda 1 (ban da matanin tambayar yana da kyau a sami mai ganowa), tare da amsoshi 4 masu yuwuwa, waɗanda 1 ne kawai zai iya zama, saboda haka takaddar JSON guda tambaya ya zama:

{"id": 1, "tambaya": "za a yi dev.desdelinux.net ", "amsa": {r1: "yes", r2: "a'a", r3: "ba su sani ba", r4: "wannan amsar karya ce"}, "daidai": 3 }

Kamar yadda muke gani mun tsara ta cikin tsari JSON inda muke da ganowa, kirtani mai tambaya tare da r1, r2 wanda ke wakiltar amsa ta 1 da amsa ta 2, a ƙarshe muna da wanne daga cikin amsoshin yake daidai.

Bari mu ga kadan yadda U1db ke aiki, abu na farko da zamu yi amfani da U1db shine shigo da tsarin:

import U1db 1.0 as U1db

Muna bayyana bayanan:

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

Za'a adana bayanan bayanan azaman aU1DbDatabase.u1db, yanzu mun ƙirƙiri daftarin aiki:

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

Inda za mu iya ganin tsarin {«hello»: «wani abu»}, don aiwatar da buƙatun, ko dai don ƙara bayanai, samun bayanai, share su da dai sauransu. Muna da nau'ikan U1db.

Zamu iya samun tutorial a kan shafin yanar gizon ci gaba na Ubuntu.

Bari mu je aikace-aikacenmu kuma mu kirkiro rumbun adana bayananmu, kamar yadda muka gani muna ayyana mahimman bayanan:

U1db.Database {id: db tambayoyi; hanya: "questionsdb.u1db"}

Lafiya, yanzu bari mu sanya wasu abubuwan tsoho a cikin tambayoyin takaddar bayanai db:

    U1db.Document { id: aDocument database: questiondb docId: 'tambayoyi' ƙirƙira: na gaskiya Definition: {"tambayoyi": [ {"tambaya":"Za a yi dev.desdelinux.net ?", "r1":"yes", "r2":"a'a", "r3":"hanci", "r4":"amsar karya", "daidai": "3"}, {"tambaya ":" Wanene Hagrid (Harry Potter)?", "r1":"Mataimakin shugaban makarantar", "r2":"Mai kula da wasan", "r3":"Malamin canji", "r4":" A prefect", "daidai": "2"}, {"tambaya":"Mene ne babban birnin Iceland?", "r1":"Amsterdam", "r2":"Reykjavik", "r3":" Tbilisi ", "r4":"Almaty", "daidai": "2"} ]} }

Ina sane da cewa ba a nuna lambar kamar yadda ya kamata, amma idan muka lura sosai za mu ga cewa muna da wani abu tambayoyi, wanda tare da »[]» mun saka cewa za a iya samun abubuwa da yawa (ba su tsaye ba) a wannan yanayin zamu sami 4 ta tsohuwa, tambayoyi 4 tare da amsoshin su.

Don samun abubuwan daftarin aiki JSON, zamu iya tantance mai gano takardar da muka kirkira (wanda shine aDumaka). Bari muyi tunanin cewa muna son samun rubutun tambaya ta farko:

aDocument.contents. tambayoyi [0]. tambaya

Wannan layin lambar ya dawo mana da abun cikin tambayar daftarin aiki, na kashi 0 (na farko a cikin fihirisar), wanda shine: «Za a sami dev.desdelinux.net?” Idan muka sanya lamba 1 a cikin fihirisa, to ita ce tambaya ta biyu.

Shiryawa dabaru game

Yanzu, tunda yanzu mun san yadda ake sarrafa ofan bayanan da muka adana tambayoyin, zamu shirya dabarun wasan ne. Da farko zamu kirkiro fayil JavaScript (.js): newara sabo -> Qt -> Js Fayil. Zan kira shi dabaru.js.

A cikin fayil ɗin zamu ƙirƙiri ayyuka da yawa, don shigo da fayil ɗin js a cikin takaddar qml ɗinmu:

shigo da "logica.js" azaman Logica

Muna danganta shi da sunan Logica, sabili da haka lokacin da muke son kiran aiki zamuyi shi azaman Logica.funcion (), kamar dai abu ne wanda yake da hanyoyin sa.

A yanzu, don kada post ɗin yayi tsayi da yawa, zamu bar lokacin tambaya da zaɓuɓɓuka nan gaba, zamu mai da hankali kan tambayoyin da maki, bari mu ga aikin da zamu yi amfani dashi don ci gaba daga tambaya:

aiki gaba Tambaya (num) {// lokaci = 0 question.text = aDocument.contents.questions [num] .question; resp1.text = aDocument.contents. tambayoyi [num] .r1; resp2.text = aDocument.contents. tambayoyi [num] .r2; resp3.text = aDocument.contents. tambayoyi [num] .r3; resp4.text = aDocument.contents. tambayoyi [num] .r4; }

Kamar yadda muke gani, mun ƙaddamar da lambar tambaya inda muke a matsayin jayayya kuma daga nan ta sanya amsoshin maɓallan da lambar tambayar. Bari mu gani yanzu don inganta idan amsar da aka zaɓa daidai ce:

aiki buga (num, zaɓi) {var buga = ƙarya; var num_correcto = aDocument.contents.questions [num] .saidai; idan (zaɓi == daidai_num) buga = gaskiya; dawo buga; }

Lambar tana magana ne don kanta, idan zaɓin da aka zaɓa daidai yake da wanda aka samar da shi ta hanyar bayanan, to zai zama gaskiya, in ba haka ba zai yi ba. Yanzu da yake mun ayyana waɗannan ayyukan, za mu yi amfani da su a cikin lambar qml ɗinmu.

Da farko zamu kara canzawa wanda zai iya sarrafa wacce tambayar muke ciki, zamu kirashi num; Hakanan zamu sami ƙarin masu canji uku: bugawa, kuskure da maki.

    dukiya int num: 0 dukiya int nfaults: 0 dukiya int haihuwa: 0 dukiya int npoints: 0

Da farko dukkansu sunkai 0.

Yanzu mun ƙara onClick zuwa duk maɓallan amsawa. onClick, kamar yadda sunan sa ya fada, lamari ne da zai faru yayin da aka danna maɓallin:

            Button {id: resp1 rubutu: "amsa 1" anchors.horizontalCenter: parent.horizontalCenter wide: parent.width - 20 onClicked: {if (Logic.certain (num, 1)) {num = num + 1; Logic.nextQuestion (num) npoints = npoints + 50 births = births + 1} else {nfaults = nfaults + 1}}}

Mun ga cewa ta danna maɓallin, yana bincika idan ya yi daidai ko a'a, idan ya yi daidai, ƙara maki kuma a wuce tambayar, in ba haka ba rai ɗaya ya rage.

A ƙarshe zamuyi tambaya ta farko lokacinda kayan Shafin suka loda:

    Shafi {id: shafinGame Component.onYa Kammala: {Logic.nextPregunta (0)}

Bari mu ga yadda abin ya kasance:

gwajin


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   Gabelus m

    Na bi matakai kuma komai yana aiki. Kawai don haɗa kai ina faɗi cewa:
    * Baya canza darajar bugawa da kuskure. Dole ne ku ƙara hakan a kowane maɓallin a cikin taron latsa ku.
    * Kuma wannan a cikin layi:
    idan (Logic.acerto (lamba, 1)) {
    canza 1 zuwa lambar maɓallin / amsa.

    lolbimbo, Na sami gudummawar ku mai ban sha'awa. Ina fatan sabbin tutos !!!

    Godiya ga rabawa.

    1.    lolbimbo m

      Ina son cewa kun yi tsokaci game da waɗannan abubuwan saboda ban bayyana a cikin post ɗin ba, menene ƙari, ban tuna da maki ba, nasarori da rashin nasara, idan kuka dube shi za ku ga cewa lokacin da muka danna maɓallin, muna ƙara maki nasarorin ... amma ba a bayyana su a cikin Label, shi ya sa za mu sanya shi a cikin kayan rubutu wanda ke nuna maki:

      Alamar {
      id: kasawa
      rubutu: «Laifi:» + hargitsi
      launi: "ja"
      }

      Alamar {
      id: bugawa
      rubutu: «Hits:» + haifaffen
      }

      Alamar {
      id: maki
      rubutu: «Points:» + npoints
      fontSize: "matsakaici"
      }

      Zan kuma fayyace shi a kashi na 3.