初入大学,在基础十分薄弱的现状下开始尝试完成一款跨平台的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工程组织等等真正实用的知识。