標籤:qt on android qml qt quick
在上一篇文章,《Qt on Android:QML 語言基礎》中,我們介紹了 QML 語言的文法,在最後我們遺留了一些問題沒有展開,這篇呢,我們就正式開始撰寫 Qt Quick 程式,而那些問題,隨著本系列文章的展開也會一一被幹掉。
在開始介紹 Qt Quick 應用的基本元素之前,我們先來建立一個 HelloQtQuickApp 項目,就是經典的 Hello World 了。
筆者的教程最終會面向 Qt Quick 與 C++ 混合編程,所以我們
HelloQtQuickApp
從零開始。
建立項目
開啟 Qt Creator ,點擊文 "件(F)" 菜單,在彈出的菜單列表中選擇 "建立檔案或項目(N)" 。如所示:
如上操作後, Qt Creator 會彈出建立項目介面,讓我們選擇應用模板。如下面的所示:
這裡我們選擇 "應用程式" 項目, "Qt Quick Application" 模板。可以看到最右側的即時提示,說這模板支援 QML 和 C++ 混合編程,這正是我們需要的,因為筆者最終提供的有使用價值的執行個體就是混合了 QML 和 C++ ,而且我的觀點也正是這樣:複雜的應用,使用 QML 快速構建介面,使用 C++ 完成關鍵演算法和邏輯。另外還看到支援 Destop 和 Android 兩個平台。
點擊 "選擇(C)..." 按鈕,建立項目嚮導會指引我們進入下一環節 "項目介紹和位置" 。參考:
請參考,將項目名稱設定為 HelloQtQuickApp 。
點擊 "下一步" 按鈕,跟隨嚮導進入組件選擇環節,
請參考圖示,選擇 Qt Quick 2.0 。
點擊 "下一步" 按鈕,跟隨嚮導進入構建套件選擇("Kit Selection")環節。
我選擇了兩個套件,"Android for armeabi-v7a (GCC 4.7, Qt 5.2.0)" 和 "Desktop Qt 5.2.0 MinGW 32bit" 。請對照檢查你的配置。
點擊 "下一步" 按鈕,跟隨嚮導進入 "專案管理" 環節。在這裡你可以選擇是否將項目加入版本控制系統(如 svn 之類),還可以看到即將添加到我們的 "HelloQtQuickApp" 項目中的檔案。如所示:
終於看到 "完成(F)" 按鈕了,趕緊點擊它!你會看到下面的項目編輯介面(我展開了項目視圖以便看到項目中的所有檔案):
雖然是一個簡單的 Hello World ,嚮導還是很熱情地給我們添加了很多檔案,比如 qtquick2applicationviewer.h / qtquick2applicationviewer.cpp / main.cpp / main.qml 。接下來我們做點兒小改動。
運行項目
請把 main.qml 檔案中的 "Hello World" 替換為 "Hello Qt Quick App" ,然後直接運行項目,(在電腦上)即可看到下面的效果:
好啦,我們的 HelloQtQuickApp 項目就這麼完成了。
在手機上運行
接下來讓我們做一些改動以便 HelloQtQuickApp 能夠在 Android 手機上運行。
看:
首先我們需要點擊標號為 1 的標籤進入項目屬性配置介面;然後點擊標號為 2 的按鈕,切換到 Android 運行選項;第三步呢,標號 3 的詳情按鈕點一下,展開部署詳情;然後呢,參考標號 4 ,選擇 Qt 部署策略為 Use Ministro service to install Qt ;最後一步,就是標號 5 所示按鈕,建立 Android 應用需要的 AndroidManifest.xml 檔案,點擊後看到下面的介面:
直接點擊 "完成(F)" 按鈕即可。然後就進入了 AndroidManifest.xml 編輯介面:
你可以按照圖示,修改應用的包名,筆者修改為 an.qt.helloQtQuickApp ,然後關閉 AndroidManifest 編輯介面時會提示你儲存,選擇儲存所有就行了。
新的項目視圖如下:
注意我標註的地區。
現在我們的項目終於完善了,可以在 Android sh上運行了。如對 Qt on Android 項目設定有不明之處,請移步我另外一篇文章——《Qt on Android:圖文詳解Hello World全過程》,如果你還沒搭建好 Qt on Android 開發環境,請參考《Windows下Qt 5.2 for Android開發入門》。
運行項目,會讓你選擇目標裝置,我串連的真機,選擇了真機。具體請參考《Qt on Android:圖文詳解Hello World全過程》。下面是運行效果:
看起來沒什麼迷人的?不錯,確實如此。不過呢,這隻是開始,剛剛開始。隨著深入學習,你可以自己製作出精美的應用和炫酷的遊戲。如果你已經迫不及待了,請把 Qt SDK 中的 Qt Quick 的樣本程式找幾個出來跑跑看。
哎呀,看起來,對於 Qt Quick 基本元素的介紹只能放到下一次了……