Membuat aplikasi untuk Ubuntu Touch [QML] - [Bahagian 1]

pengenalan

Di sini akan datang beberapa siri (seperti yang saya buat Vala), tetapi kali ini dengan permohonan untuk Ubuntu Touch, aplikasi pada mulanya adalah "sama" seperti di catatan dari Vala, iaitu, jenis permainan di mana kita mempunyai pertanyaan dan 4 jawapan dalam bentuk ujian, maka kita mempunyai tiga butang, satu untuk menghilangkan dua kemungkinan jawapan (50%), satu lagi untuk membekukan masa dan yang terakhir untuk pergi dari soalan.

Untuk melihat cara mula membuat projek, anda boleh melayari ini hantar (dokumentasi, buat projek ...), kerana kita akan memulakan dengan projek yang sudah dibuat.

Walaupun aplikasinya tertumpu pada Ubuntu Touch Ia juga boleh digunakan dalam Ubuntu seolah-olah itu adalah aplikasi biasa

Pengetahuan asas

Untuk membuat aplikasi, kami akan menggunakan komponen UbuntuWalaupun kita dapat membuat komponen kita sendiri, kita tidak akan melakukannya.

Komponen Ubuntu adalah komponen yang akan kita gunakan untuk aplikasi kita:

Tangkap dari 2014-07-04 23:57:48

Untuk menggunakannya sama kita harus mengimport modul:

import Ubuntu.Komponen 0.1

Kita dapat menjumpai elemen yang berbeza dalam komponen, seperti butang, bar kemajuan dll. Kami boleh memuat turun projek di mana mereka menunjukkan sebahagian besar komponen berikut:

cawangan bzr lp: ubuntu-ui-toolkit 
kita mesti memasang bzr

Merancang aplikasi

Kami bermula dari gambar di mana aplikasi kami dibuat GTK, dalam kes ini kita akan menggunakan QML, sebenarnya kita akan membuat keseluruhan aplikasi dengan Qt Pantas (QML + JavaScript).

Aplikasi, seperti gambar, akan terdiri dari pertanyaan, masa, jawapan, pilihan dan poin. Satu-satunya perbezaan (selain dari "gaya"), kita akan mempunyai Tab di bahagian atas.

Untuk ini kita akan menggunakan elemen butang, label dan progressBar. Untuk struktur kita akan menggunakan Elemen Tiang y Baris.

Nanti kita akan buat agregat soalan

Merancang susun atur skrin utama:

Kita mulakan dengan MainView, di mana Tab yang berbeza akan dijumpai, dalam hal ini kita akan mengerjakan susun atur skrin awal aplikasi kita.

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

Dimensi (untuk Ubuntu Touch):

lebar: unit.gu (50) tinggi: unit.gu (75)

Kami menentukan panjang dan lebar aplikasi kami, di mana lebarnya 50 (unit) dan panjang 75, sekarang kita akan memberikannya warna:

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

Kami mempunyai warna tajuk, badan dan kaki:

Tangkap dari 2014-07-05 15:24:58

Seperti yang saya nyatakan sebelumnya, aplikasi akan disusun berdasarkan Tab:

    Tab {id: tab Set {objectName: "jocTab"} / * Tambahkan {objectName: "addQuestions"} * /}

Seperti yang kita lihat, kita mempunyai dua Tab, satu memberi komen (kita belum membuatnya) dan satu lagi untuk dimainkan (yang sekarang akan kita buat). Untuk membuat Tab tersebut, kami akan membuat fail qml baru (Tambahkan baru -> Qt -> Fail QML -> ...), nama fail tersebut akan Permainan.qml.

Baiklah, mari kita ubah Game.qml sedemikian rupa sehingga kita mengubahnya menjadi Tab, yang di dalamnya memiliki halaman (Halaman):

import QtQuick 2.0 import Ubuntu.Komponen 0.1 Tab {tajuk: Halaman i18n.tr ("Game") {}}

Di dalam halaman, kita akan mula menyusun unsur-unsur yang kita sebutkan dalam reka bentuk. Lajur yang akan merangkumi semua elemen di dalamnya (ia akan meletakkannya secara menegak), maka kita akan menyusun elemennya mengikut urutan: Label, ProgressBar, 4 butang; dan untuk meletakkan pilihan, kami akan menggunakan elemen Row untuk meletakkannya secara mendatar.

Lajur {anchors.top: Gamepage.top anchors.topMargin: 50 spacing: 15 width: parent.width height: parent.height - 50 Label {id: question anchors.topMargin: 500 text: "Question?" anchor.horizontalCenter: parent.horizontalCenter fontSize: "large" font.bold: true} ProgressBar {id: time anchors.horizontalCenter: parent.horizontalCenter} Butang {id: resp1 text: "Response 1" anchors.horizontalCenter: parent.horizontalCenter} Butang {id: resp2 text: "Response 2" anchors.horizontalCenter: parent.horizontalCenter} Butang {id: resp3 text: "Response 3" anchors.horizontalCenter: parent.horizontalCenter} Butang {id: teks resp4: "Respons 4" anchor .horizontalCenter: parent.horizontalCenter} Baris {spacing: 15 anchors.horizontalCenter: parent.horizontalCenter Butang {id: b50 text: "50%"} Butang {id: bCon text: "Freeze"} Butang {id: bNext text: " Seterusnya "}} Row {spacing: 15 anchors.horizontalCenter: parent.horizontalCenter Label {id: Failures text:" Failures: 0 "color:" red "} Label {id: hits text:" Hit: 0 "} Label {id : teks mata: "Poin: 0" fontSize: "medium"}}

Mari kita lihat bagaimana di dalam setiap elemen yang dibatasi oleh {} kita mempunyai sifat yang berbeza, sekiranya label dan butang kita dapat melihat bahawa sifat "teks" adalah teks yang ditunjukkannya, harta bukan visual yang penting adalah pengenal "id», Yang akan membantu kita ketika kita melaksanakan logik aplikasi.

Pada akhirnya kita dapat melihat hasilnya:

Tangkap dari 2014-07-23 19:21:03


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   nano kata

    Saya suka, ia tidak mempunyai sedikit perincian pada pendapat saya, tetapi ia adalah panduan rujukan yang baik ...

  2.   Ariel kata

    Sangat bagus! Ia berfungsi dengan baik untuk memulakan dengan Qml.
    Sejauh ini, ini adalah blog Linux terbaik dalam bahasa Sepanyol. Saya tidak pernah mengulas sebelum ini, tetapi saya selalu memeriksanya; hampir ketagihan yang saya ada.
    Satu soalan… Bolehkah program yang dibuat dengan Ubuntu SDK dipasang pada distro yang sangat berbeza, seperti Arch misalnya? Saya rasa perlu untuk memenuhi beberapa ketergantungan (seperti Qt tentu saja). Tetapi terdapat semua kebergantungan ini biasanya di repositori mana-mana distro.

    1.    Ariel kata

      Maaf, ayat terakhir mestilah soalan sebenarnya ... Adakah semua pergantungan di repositori ada distro?

      1.    Lolbimbo kata

        Secara lalai anda tidak dapat memasang -la (dalam hal ini), kerana ia mempunyai ketergantungan seperti komponen ubuntu (dalam kes ini versi 0.1), jika anda memasangnya nanti ia tidak akan memberikan masalah, sekiranya anda tidak menggunakan komponen (Saya rasa Anda juga dapat mengimport semuanya ke aplikasi sehingga berat badan akan bertambah tetapi anda membuangnya sebagai ketergantungan) seperti aplikasi sigram (klien untuk telegram) dibuat dengan cepat qt dan anda boleh memasangnya ke kebanyakan distro .

  3.   sasuke kata

    Semoga anda menyelesaikan permohonan.

    1.    gabielus kata

      Ia sangat bagus. Saya sudah mengikuti langkah-langkahnya dan sudah seperti ini.
      Semoga anda meneruskan projek ...