Skep 'n app vir Ubuntu Touch [QML] - [Deel 1]

inleiding

Hier sal 'n reeks plasings kom (soos dié waarmee ek gedoen het vala), maar hierdie keer met 'n aansoek vir Ubuntu Touch, die aansoek is aanvanklik "dieselfde" as in die plasings van vala, dit wil sê 'n soort speletjie waar ons 'n vraag en 4 antwoorde in die vorm van 'n toets het, dan het ons drie knoppies, een om twee van die moontlike antwoorde (50%) uit te skakel, een om tyd te vries en die laaste om gaan van vraag af.

U kan hierdie besoek om te sien hoe u 'n projek kan begin skep pos (dokumentasie, skep projek ...), aangesien ons sal begin met die reeds geskepte projek.

Alhoewel die aansoek gefokus is Ubuntu Touch Dit kan ook gebruik word in Ubuntu asof dit 'n normale toepassing is

Algemene kennis

Om die app te skep, gebruik ons ​​die komponente van UbuntuAlhoewel ons ons eie komponente kon skep, sal ons dit nie doen nie.

Ubuntu-komponente is komponente wat ons vir ons app sal gebruik:

Vaslegging van 2014-07-04 23:57:48

Om hulle dieselfde te gebruik, moet ons die module invoer:

voer Ubuntu.Components 0.1 in

Ons kan verskillende elemente binne die komponente vind, soos knoppies, vorderingsbalkies, ens. Ons kan 'n projek aflaai waar ons die meeste van hierdie komponente wys:

bzr tak lp: ubuntu-ui-toolkit 
ons moet bzr laat installeer

Ontwerp die app

Ons begin by die prentjie waarmee ons die aansoek maak GTK, in hierdie geval sal ons gebruik QML, in werklikheid sal ons die hele aansoek met Qt vinnig (QML + JavaScript).

Die toepassing, soos die afbeelding, sal bestaan ​​uit 'n vraag, tyd, antwoorde, opsies en punte. Die enigste verskil (behalwe vir die "styl"), is dat hierbo Tabs sal hê.

Hiervoor gebruik ons ​​die knoppie-, etiket- en progressBar-elemente. Vir die struktuur sal ons die Element gebruik Kolom y Roei.

Later sal ons 'n aantal vrae skep

Ontwerp die uitleg van die hoofskerm:

Ons begin met 'n MainView, waar verskillende oortjies gevind sal word, in hierdie geval gaan ons werk aan die uitleg van die eerste skerm van ons app.

MainView {objectName: "mainView" // ...}

Afmetings (vir Ubuntu Touch):

breedte: eenhede.gu (50) hoogte: eenhede.gu (75)

Ons definieer die lengte en breedte van ons toepassing, waar die breedte 50 (eenhede) en die lengte 75 sal wees, nou gaan ons dit kleur gee:

headerColor: "# 57365E" backgroundColor: "# A55263" footerColor: "# D75669"

Ons het die kleur van die koptekst, liggaam en voetskrif:

Vaslegging van 2014-07-05 15:24:58

Soos ek vroeër genoem het, sal die aansoek deur tabs gestruktureer word:

    Tabs {id: tabs Stel {objectName: "jocTab"} / * Voeg {objectName: "addQuestions"} * /} by

Soos ons kan sien, het ons twee oortjies, een het kommentaar gelewer (ons het dit nog nie geskep nie) en een om te speel (wat ons nou sal skep). Om die genoemde oortjie te skep, sal ons 'n nuwe qml-lêer skep (voeg nuwe by -> Qt -> QML-lêer -> ...), die naam van die lêer is Game.qml.

Wel, laat ons Game.qml so verander dat ons dit in 'n oortjie verander wat 'n bladsy (bladsy) bevat:

invoer QtQuick 2.0 invoer Ubuntu.Components 0.1 Tab {title: i18n.tr ("Game") Bladsy {}}

Binne die bladsy sal ons die elemente begin struktureer wat ons in die ontwerp noem. 'N Kolom wat al die elemente binne bevat (dit sal dit vertikaal plaas), dan sal ons die elemente in volgorde plaas: Label, ProgressBar, die 4 knoppies; en om die opsies te stel, sal ons die Row-element gebruik om dit horisontaal te plaas.

Kolom {anchors.top: Gamepage.top anchors.topMargin: 50 spasiëring: 15 breedte: parent.width hoogte: parent.height - 50 Label {id: vraag anchors.topMargin: 500 teks: "Vraag?" anchors.horizontalCenter: parent.horizontalCenter fontSize: "large" font.bold: true} ProgressBar {id: time anchors.horizontalCenter: parent.horizontalCenter} Button {id: resp1 text: "Response 1" anchors.horizontalCenter: parent.horizontalCenter} Button {id: resp2 text: "Response 2" anchors.horizontalCenter: parent.horizontalCenter} Button {id: resp3 text: "Response 3" anchors.horizontalCenter: parent.horizontalCenter} Button {id: resp4 text: "Response 4" ankers .horizontalCenter: parent.horizontalCenter} Ry {spasiëring: 15 anchors.horizontalCenter: parent.horizontalCenter Button {id: b50 text: "50%"} Button {id: bCon text: "Freeze"} Button {id: bVolgende teks: " Volgende "}} Rij {spasiëring: 15 anchors.horizontalCenter: parent.horizontalCenter-etiket {id: mislukkings teks:" Foute: 0 "kleur:" rooi "} Etiket {id: treffers teks:" Treffer: 0 "} Label {id : punte teks: "Punte: 0" fontGrootte: "medium"}}

Kom ons kyk hoe binne elke element wat afgebaken word deur sy {} verskillende eienskappe het, in die geval van die etiket en die knoppies kan ons sien dat die "teks" -eigenskap die teks is wat dit toon, 'n belangrike nie-visuele eienskap is identifier "id", wat ons sal help wanneer ons die toepassingslogika implementeer.

Aan die einde kan ons die resultaat sien:

Vaslegging van 2014-07-23 19:21:03


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

6 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   nano dijo

    Ek hou daarvan, dit het na my mening nie besonderhede nie, maar dit is 'n goeie verwysingsgids ...

  2.   Ariel dijo

    Baie goed! Dit werk baie goed om met Qml te begin.
    Dit is verreweg die beste Linux-blog in Spaans. Ek het nog nooit vantevore kommentaar gelewer nie, maar ek kyk dit so gereeld; dit is amper 'n verslawing wat ek het.
    Een vraag ... Kan 'n program wat met die Ubuntu SDK gemaak is, op 'n heel ander distro geïnstalleer word, soos byvoorbeeld Arch? Ek neem aan dat dit nodig sal wees om 'n afhanklikheid te vervul (soos Qt natuurlik). Maar daar is al hierdie afhanklikhede normaalweg in die bewaarplekke van enige distro.

    1.    Ariel dijo

      Jammer, die laaste sin moes seker 'n vraag gewees het ... Is al die afhanklikhede in die bewaarplekke van enige distro?

      1.    lolbimbo dijo

        Standaard kan u nie -la (in hierdie geval) installeer nie, aangesien dit afhanklikes is soos ubuntu-komponente (in hierdie geval weergawe 0.1). As u dit later installeer, sal dit nie probleme gee nie, as u nie die komponente gebruik nie (Ek dink jy kan hulle almal ook na die toepassing invoer sodat dit in gewig sal toeneem, maar jy verwyder dit as 'n afhanklikheid) soos die sigram-toepassing (kliënt vir telegram) word vinnig met qt gemaak en jy kan dit in die meeste distros installeer .

  3.   Sasuke dijo

    Hopelik is u klaar met die aansoek.

    1.    gabielus dijo

      Dis baie goed. Ek het al die stappe gevolg en dit is soos dit is.
      Hopelik gaan u voort met die projek ...