找回密码
 立即注册
收起左侧

Qt安卓教程(1): 从Qt5.1开始

139
回复
74496
查看
  [复制链接]

尚未签到

来源: Android 2013-8-8 00:14:08 显示全部楼层 |阅读模式
该文章原创于Qter开源社区(www.qter.org),作者Joey_Chan,转载请注明出处!

系列教程传送门:
第二篇:http://www.qter.org/forum.php?mod=viewthread&tid=563
第三篇:http://www.qter.org/forum.php?mod=viewthread&tid=918
第四篇:http://www.qter.org/forum.php?mod=viewthread&tid=1382
第五篇:http://www.qter.org/forum.php?mod=viewthread&tid=1664
第六篇:http://www.qter.org/forum.php?mod=viewthread&tid=2518

本系列教程主要讲述与安卓移植版Qt的相关内容,如平台特性、功能限制、特定用户体验和内容发布等,其余与Qt自身非平台相关的内容不会作详细讲述,笔者默认童鞋们已经有一定的Qt功底。
另:请自备安卓机子一台,不推荐用模拟器。

第一篇:从Qt5.1开始

1. 准备工作
    站长yafei已经发过这个准备教程了,我这里只简单说明一下要点。(笔者使用的是Kubuntu 12.04,其它系统可能会有少许差异,有问题欢迎提问)

    1.1 下载好android sdk和ndk,解压即可;
    1.2 下载好Qt5.1并安装;
    1.3 (注意!这个必须)下载安装最新Qt Creator,版本2.8或以上;(过时)
          (更新)新版本的Qt集成安装包已经包含了版本大于2.8的creator
    1.4 下载并配置好jdk和ant;
    1.5 (Linux版请注意)android sdk自带的adb可能没有连接设备的权限,请把这个adb改为root属主,用chmod u+s特殊授权,再增加普通用户访问权限(777),这个步骤看不懂的童鞋请拿着Linux教程面壁去;

2. 开始动手

    启动creator,注意必须是版本大于等于2.8的,目前Qt5.1自带的是2.7.2。


    打开creator后,先不要急着建项目,去选项看看Android相关配置有没有问题,我这里先贴上我自己的Linux版本配置:
   

    然后确定编译器、Qt版本和编译打包套件的配置: (至少要有一个arm v7的套件在)




    确定无误后可以开始新建项目了,我这里只选了arm v7 gcc 4.8的,x86可忽略(市面上几乎没有x86的手机卖,当然现在x86的电脑也可以装安卓了)

    建好项目后,这里暂时不改源代码,直接去“项目”选项卡

    然后点“运行”(项目里面的,不是左下角的)


    打开第二项“包配置”


    选择安卓目标sdk,这里的sdk就是指安卓的sdk版本(必须大于等于10,这是Qt5的基本要求),图中的“android-10”就代表android 2.3,这个需要在android的sdk里面自行安装

    点左下角的锤子进行编译

    然后就可以选择图中的“从应用程序读取信息”,这个是必须步骤,这个步骤可以自动在apk中加载需要用到的Qt库

    签名什么的暂时不需要,如果是自己玩的话

    打开第三项“Deploy配置”,这里童鞋们可以打开版本低于2.8的creator,会发现这里有很大的不同,特别是最下方的“Bundle Qt libraries in APK”,这个是把Qt库打包进APK的选项,老的creator没有这个功能,这就是为什么我要求下载最新版本的creator了
   

    接下来请连上手机,记得打开手机的debug模式,点击左下角的绿色三角形,程序就在手机上运行了,如图,hello world
   

    把编译好的apk拿出来,就可以直接给小伙伴们安装了,不需要别的支持,让他们惊呆一下吧。

3. 加工一下

   打开main.qml这个文件,在第六行下面加一行,输入 id:hello ,
   然后把下面onclicked里面的内容改为 hello.text = parent.width + " , " + parent.height
   意思就是把hello world改为当前程序的占用分辨率


   运行效果如下
  


   说明了Qt for Android已经自带有分辨率自适应的能力,因为代码头部写的大小是360×360,而实际显示是程序实际占用的分辨率。



能力有限请多多包涵,欢迎各种没节操的批评。
BTW,目前还没打算下一期写什么内容,童鞋们可以提个建议。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
参与人数 4人气 +7 收起 理由
AZMDDY + 2 很实用!
xiangtian134 + 1 很实用!
sikong + 2
xflcx1991 + 2 对我帮助很大!

查看全部评分总评分 : 人气 +7

回复

使用道具 举报

尚未签到

2013-8-8 01:46:35 显示全部楼层
楼主,加油!继续把教程写下去!!!!!
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 02:04:43 显示全部楼层
建议把相关下载链接,代码等附件上传
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 08:45:35 显示全部楼层
楼主真是辛苦了,好好学习
回复 支持 反对

使用道具 举报

累计签到:181 天
连续签到:1 天
2013-8-8 09:16:26 显示全部楼层
建议写sensor相关的部分。
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 09:18:43 显示全部楼层
wins 发表于 2013-8-8 02:04
建议把相关下载链接,代码等附件上传

链接就只有qt的官网,代码也只有creator自建的项目,所以没必要上传。  有什么不懂的可以直接回帖问,本期其实没什么实质性内容。
回复 支持 反对

使用道具 举报

累计签到:851 天
连续签到:1 天
2013-8-8 09:35:46 显示全部楼层
Joey_Chan 发表于 2013-8-8 09:18
链接就只有qt的官网,代码也只有creator自建的项目,所以没必要上传。  有什么不懂的可以直接回帖问,本 ...

在前面可以先写下自己的环境,比如用的是什么linux系统。
回复 支持 反对

使用道具 举报

累计签到:37 天
连续签到:1 天
2013-8-8 10:17:31 显示全部楼层
楼主加油~  想问下 手机开发主要是使用QML么
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 10:30:53 显示全部楼层
yafeilinux 发表于 2013-8-8 09:35
在前面可以先写下自己的环境,比如用的是什么linux系统。

对哦。。。忘了写,等会加上去
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 10:31:51 显示全部楼层
揪揪凯 发表于 2013-8-8 10:17
楼主加油~  想问下 手机开发主要是使用QML么

是qml,官方没有为widget类做手机方向的优化
回复 支持 反对

使用道具 举报

累计签到:37 天
连续签到:1 天
2013-8-8 11:26:49 显示全部楼层
Joey_Chan 发表于 2013-8-8 10:31
是qml,官方没有为widget类做手机方向的优化

问个问题  我现在自定义了一个按钮组件  现在想在另一个QML文件里修改组件内部的属性,比如大小颜色  , 应该怎么去访问?
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 14:18:23 显示全部楼层
揪揪凯 发表于 2013-8-8 11:26
问个问题  我现在自定义了一个按钮组件  现在想在另一个QML文件里修改组件内部的属性,比如大小颜色  ,  ...

可以用附加property,如:
  1. Item{
  2.      id: button

  3.      property color color: "white"

  4.      Rectangle{
  5.             color: parent.color
  6.      }
  7. }
复制代码
这样就可以修改里面的颜色了,如 button.color = "black"
回复 支持 反对

使用道具 举报

累计签到:19 天
连续签到:1 天
2013-8-8 16:54:18 显示全部楼层
真机测验,成功!谢谢楼主分享!
回复 支持 反对

使用道具 举报

尚未签到

2013-8-8 18:09:39 显示全部楼层
phm 发表于 2013-8-8 16:54
真机测验,成功!谢谢楼主分享!

自己动手,丰衣足食
回复 支持 反对

使用道具 举报

累计签到:34 天
连续签到:1 天
2013-8-9 11:11:12 显示全部楼层
建议同时贴上window下的配置信息。
因为大部分人用的还是window系统。linux相关系统还是躺在虚拟机上的。
回复 支持 反对

使用道具 举报

尚未签到

2013-8-9 11:15:53 显示全部楼层
期飞 发表于 2013-8-9 11:11
建议同时贴上window下的配置信息。
因为大部分人用的还是window系统。linux相关系统还是躺在虚拟机上的。 ...

我没有用windows系统的,用Ubuntu好几年了。其它配置信息可以去站长yafei之前的教程找找,或者qt自己的文档里面搜索“android”就有了
回复 支持 反对

使用道具 举报

累计签到:19 天
连续签到:1 天
2013-8-9 11:40:49 显示全部楼层
我用的是64位的windows 8专业版。
我的配置也就是这样的:
Android SDK里我只下了Android 4.0.3 (API 15)(因为我的机子是安卓4.0.4的);
Android NDK的话,我去官网下载了最新的r9 (64-bit),编译运行目前并没有问题(我也试过r8e (32-bit)的,也是目前没有问题);
至于Qt的话,官网下载的Qt 5.1.0 for Android (Windows 32-bit, 716 MB),我安装了组件里的ARMv7的部分,ARMx86没安装(就跟楼主说得一样);
而QtCreator的话,官网下载的32位2.8.0有楼主所说的打包的选项,但是好像缺少了一个qml2puppet.exe,让我无法在32位的2.8.0里直接编辑qml(而且我试过自己),只好去上面下载的qt版本里绑定的qtcreator2.7.2里修改qml,然后回来2.8.0编译运行。
回复 支持 反对

使用道具 举报

尚未签到

2013-8-9 12:15:39 显示全部楼层
phm 发表于 2013-8-9 11:40
我用的是64位的windows 8专业版。
我的配置也就是这样的:
Android SDK里我只下了Android 4.0.3 (API 15)( ...

qml2puppet是creator里面必有的组件,试试重新装一次2.8的,或者从2.7那里复制过去
回复 支持 反对

使用道具 举报

累计签到:19 天
连续签到:1 天
2013-8-9 12:25:30 显示全部楼层
Joey_Chan 发表于 2013-8-9 12:15
qml2puppet是creator里面必有的组件,试试重新装一次2.8的,或者从2.7那里复制过去 ...

重新装一次也是一样,没有qml2puppet.exe。而且2.7那里的qml2puppet是qt5.1编译的,但2.8用的是qt4.8.4(VS2010)编译的,复制过去也没有用。
回复 支持 反对

使用道具 举报

尚未签到

2013-8-9 12:52:45 显示全部楼层
phm 发表于 2013-8-9 12:25
重新装一次也是一样,没有qml2puppet.exe。而且2.7那里的qml2puppet是qt5.1编译的,但2.8用的是qt4.8.4(V ...

那我就不清楚了,我用的linux版没有这问题,帮不了你不好意思哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册