初入大學,在基礎十分薄弱的現狀下開始嘗試完成一款跨平臺的APP,選擇的工具便是高中時略有耳聞的QtQML,然而發現自己搗鼓官方開源版qt on android時總是出現一些意料之外的問題(列如往資源文件中添加xml後在手機端安裝打開後閃退等等)。無奈之下本打算放棄,卻意外發現有着一款建立,管理工程較方便完善的擴展庫v-play,它一鍵化的環境配置,除了不支持c++註冊爲QML的交互類外調試都很方便的Live Run功能都吸引了我。在閱讀了官方提供的一些example project後,頭鐵的我開始了自己摸着石頭過河的學習(瞎搞)歷程... 積分積分gkd!
import Felgo 3.0
import QtQuick 2.9
import QtMultimedia 5.9
App {
id: root;
onInitTheme: {
Theme.platform = "ios";
Theme.colors.statusBarStyle = Theme.colors.statusBarStyleHidden;
}
Audio {
id: music;
source: "../assets/mus/Welcome.mp3";
loops: 1;
autoLoad: true;
}
Component.onCompleted: music.play();
Page {
useSafeArea: false;
anchors.fill: parent;
Navigation{
id: navigation;
NavigationItem{
title: "Create";
icon: IconType.plus;
NavigationStack{ CreateNewPage{ } }
}
NavigationItem{
title: "User";
icon: IconType.user;
NavigationStack{ UserPage{ } }
}
}
}
}
ios主題下的界面,內有一個listview(圖內人物爲我的某騷帥氣舍友請無視,此LiveClient中可以直接切換主題和設置設備分辨率,比較方便)
上面是主頁的一段代碼,App是felgo的基本框架,有着自適應屏幕大小的特性;v-play提供desktop/ios/android 三種接近原生態的UI控件主題,可以通過對Theme成員的修改變更狀態欄顏色及是否隱藏和在其上添加額外Item、字體、整體控件風格的修改。
接着,各個頁面主要由Navigation組織,向其中添加NavigationItem即可創建各個不同的頁面,同時利用NavigationStack對層次進行處理,竊以爲比原QML的各View(stackview)要優越一些。簡單美觀的界面建立起來還是很方便的。
此外,如果只做一些學習性的實驗,felgo內的Icon爲我們內置了許多便利美觀的素材,直接使用即可節約不少臨時找素材的時間,直接對含有icon屬性的控件調用IconType.直觀的名稱即可食用。
最後給希望深入學習此框架的各位一個建議:認真研究官方自帶的各種demo,可以學到各種控件的用法、包括qml工程組織等等真正實用的知識。