qt on android qml,Qt on Android: Qt Quick 之 Hello World 图文详解
在上一篇文章,《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 基本元素的介绍只能放到下一次了……
原文:http://blog.csdn.net/foruok/article/details/28850879
qt on android qml,Qt on Android: Qt Quick 之 Hello World 图文详解相关推荐
- Qt on Android:图文详解Hello World全过程
这是系列文章中的一篇,阅读本文前请先阅读<Windows下Qt 5.2 for Android开发入门>,以便确保开发环境和作者一致. 部分文章被转发/转载却没有注明出处,特此声明:版权所 ...
- Qt on Android 图文详解Hello World全过程
这是系列文章中的一篇,阅读本文前请先阅读<Windows下Qt 5.2 for Android开发入门>,以便确保开发环境和作者一致. 部分文章被转发/转载却没有注明出处,特此声明:版权所 ...
- Android中Canvas绘图之Shader使用图文详解
概述 我们在用Android中的Canvas绘制各种图形时,可以通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形.那么Shader是什 ...
- Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
- 图文详解如何搭建Windows的Android C++开发环境
原地址:http://www.apkbus.com/android-18595-1-1.html //================================================= ...
- 【图文详解】Android手机系统精简 搭建Linux集群硬件环境 Jdk运行HelloWorld
1.序言 经过多日的折腾,终于有点小小成就!期间反反复复,多次尝试,有好几次都有了放弃的念头:但最终还是坚持了下来,仔细学习研究的文章有好几十篇,各种工具到处找.为了总结经验教训,也为了有同样需求的朋 ...
- android代码查找快捷键是什么,Android Studio搜索功能(查找功能)及快捷键图文详解(示例代码)...
1.在当前窗口查找文本[Ctrl+F] F3 向下查找关键字出现位置 Shift+F3 向上一个关键字出现位置 2.在当前工程内查找文本[Ctrl+Shift+F] 先会弹出一个对话框,直接点击[fi ...
- android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)
前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...
- Carson带你学Android:图文详解RxJava背压策略
前言 Rxjava,由于其基于事件流的链式调用.逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎. 本文主要讲解的是RxJava中的 背压控制策略,希望你们会喜欢. Cars ...
最新文章
- 在ASP.NET下实现数字和字符相混合的验证码
- Linux I2C(一)之常用的几种实例化(i2c_client ) 【转】
- sql 以a开头的所有记录_#9#猴子聊数据分析之常见的SQL笔试题和面试题(下)
- opengl库中gl glu glut glaux的区别
- Vue实现组件props双向绑定解决方案
- Matcha已升级至0xV4版,比Uniswap和Sushi等平台节省4%的交易费
- 当有多个设备online时,命令行窗口通过adb连接指定设备方法
- burpsuite_pro的使用
- 资管新政:银行资产管理业务的转型与发展 -中国银行刘东海
- 2018计算机一级证件照,2018下半年软考报名照片要几寸的呢?是要白底照片吗?...
- 手机管理服务器文件夹,手机管理服务器文件夹
- (十二:2020.08.28)CVPR 2016 追踪之论文纲要(译)
- 不需要数据库的php迷你博客程序,GitHub - Smilefish0/miniblog: 一个不需要数据库、轻量级、微型、开源的博客程序!...
- 企业官方微博的视觉设计与营销策略分析
- 放牛娃谈堆排序---(为了说明白,我重新学习了如何说“人话”)
- C# 城市路网地图生成与运动模拟(一)-数据的获取
- vue全家桶+koa2+mongoDB打造全栈社区博客
- webbench源码学习--命令行选项解析函数getopt和getopt_long函数
- BootStrap4工具类之阴影效果
- windows2012装sql 2000 sql 2005 vs2005的解决办法
热门文章
- 每日一皮:当你修bug时,是否碰到过这种场景...
- 为什么 HashMap 的加载因子是0.75?
- Java 14 Hotspot 虚拟机垃圾回收调优指南!
- 优雅处理你的Java异常
- 死磕Java并发:J.U.C之AQS简介
- 04741计算机网络原理知识点,04741计算机网络原理知识点整理.doc
- SVN 服务器发送了意外的返回值(405 Method Not Allowed),在响应 “MKCOL” 的请求
- GNOME启动时激活NumLock
- mxnet根据相似度进行人脸样本对图片清理
- mysql comment