Qt跨平台开发环境搭建

8 篇文章 0 订阅
2 篇文章 0 订阅

Qt跨平台开发环境搭建

 

1.     背景介绍

Qt是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者丰富的图形用户界面所需的所有功能。而且,Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。相对于后面那些技术,Qt的优势在于

1.      跨平台,同样一份代码,不需要修改即可从桌面移植至移动端,从windows移植至android

2.      开源,Qt是开源软件,版本升级较快,因此不存在技术落后问题(相对于MFC而言)

3.      Qt框架简单易用,开发效率高(Qt采用QML脚本和C++代码混合编程的方式,开发产品速度很快)

4.      Qt图形界面支持较好(许多图形控件,比如仪表盘,距离标尺等都有现成控件可用,非常方便)

Qt分为商业版和开源版两个版本,本文讨论的Qt指的都是开源版。

 

2.     Qt Creator介绍

Qt Creator是一个IDE环境,既可以开发Qt程序,也可以用来开发普通的C,C++程序,类似于微软的VS系列,现在最新版本是3.5.0

Qt Creator是Qt程序原生的开发环境,相比较于vs的庞大,Qt Creator显得轻量很多,而且能够跨平台运行,以及交叉编译。Qt Creator集成了Qt Designer(一个界面设计工具),Qt Assistant(用来查看帮助), Qt Linguist(多国语言支持), 图形化的GDB,以及qmake构建工具。使用Qt Creator可以方便的编译Qt程序,连接Qt支持库,以及查看教程,打开和运行Qt官方程序代码等。

上图就是QtCreator的运行界面,由图可见,界面可以分为4部分,最上方的为菜单栏,包括文件,工程的打开,新建,保存,关闭;项目工程的构建,链接,运行,调试,分析等功能。左侧的视图栏从不同的视图显示来显示同一个工程,包括欢迎界面(显示Qt自带工程例子,视频教程),编辑(编辑工程代码),设计(显示设计视图),Debug(调试模式),项目(工程项目的设置),Analyse(分析视图),帮助(Qt的帮助界面)。左下方为工具栏,包括4个按钮,分别代表项目状态(Debug还是Release),项目运行,调试,设置。整个界面中心的那部分就是Qt Creator打开工程的主界面了,可以根据左侧视图栏中的选择,分别显示Qt例程,工程代码,设计界面等。上图中显示的是Qt自带的Example

 

3.     下载软件

Qt开发中所用到的所有软件,工具都可以从Qt官网下载。

http://www.qt.io/

官网上的软件最新最全,而且都有分门别类的组织,下载起来较方便。

官网截图

 

使用Qt框架开发程序,需要下载如下安装包

1.      Qt框架库,根据程序运行的环境分为windows和android以及RT

从图中可以看出,windows版本分为64位和32位,编译器可以使用VS也可以使用MinGW,在这里我推荐使用MinGW,这是一款Windows系统下的开源编译器,和Qt一样,更新较快。

如果程序需要移植到android系统上,这里需要下载Android版本。

 

2.      Qt Creator

之前已经介绍过,QtCreator是一款Qt程序开发的IDE环境,包括代码的编译,连接,执行和调试。

大家可以根据自己系统选择对应的版本下载,我是在windows 7 上开发,因此我下载的是第一个。

 

以上两个安装程序包的下载地址为

http://www.qt.io/download-open-source/

这也是Qt的官方下载地址,所有最新最全的Qt开发相关的软件、工具都可以在这里下载。

如果只是开发桌面程序,那么上面两个安装包下载完就没事了,但是如果需要开发android程序,那么还需要下载android的开发工具,有如下4个

1.      JDK,android开发离不开JDK环境,因此必须下载

http://www.oracle.com/technetwork/java/javase/downloads/index.html

官网下载

2.      Android SDK,android程序的开发工具

http://pan.baidu.com/s/1i3eUFDb

由于Google被封锁,因此从上述网盘下载

3.      Android NDK, 由于Qt采用C++语言开发,因此需要AndroidNDK工具

 

http://pan.baidu.com/s/1jG7Yacm

由于Google被封锁,因此从上述的网盘下载

4.      Ant脚本, Android程序的打包工具

http://ant.apache.org/bindownload.cgi

官网下载

 

至此,android平台的Qt开发工具已经全部下载完成了。

   

4.     设置步骤

1.      打开Qt Creator, 菜单栏选择工具->选项

2.      在弹出的选项菜单中选择Android

3.      将上一步下载的JDK,SDK,NDK,Ant下载路径分别填入对应方框内。

勾选自动创建工具链,这样QtCreator可以自动识别已经安装的android平台,虚拟机区域可以显示已创建的android虚拟机。如果使用真机调试,则可以不用创建,我推荐大家使用真机调试,因为虚拟机速度较慢,且无法发现真机运行过程中出现的问题。

 

4. 完成选项Android部分设置后,我们还需要设置一下构建和运行环境。

Qt Creator已经自动识别出了所安装的套件,为了演示如何设置,我新建了两个套件,分别取名为qtandroid和qtdesktop,代表android构建平台和桌面构建平台

qtandroid设置界面

 

qtdesktop设置界面

 

至此,我们已经完成了跨平台开发的所有设置,下面即将编写一个程序,代码不做任何修改,分别使用qtdesktop和qtandroid构建,在桌面和android手机上运行。

 

5.     DMI测试版

DMI测试版是我根据有轨电车DMI软件简化的一个测试版本,运行界面包括4部分,分别是距离标尺,仪表盘,声音按钮,操作图标。

下面我将采用同一份代码,使用Qt Creator分别编译出桌面版和Android版两个版本。

1.      选择文件->新建

在弹出的对话框中选择Qt Quick Application

 

2.      完成创建后,在左侧的文件树中选择MainForm.ui.qml,这就是主界面文件

 

3.      我们选择设计视图,可以看到Qt5.5自带的控件,包括仪表盘,距离标尺等。

如果程序简单的话,可以直接将控件拖动到主界面上,但是因为我现在开发的有轨电车DMI涉及一些操作逻辑,因此我决定采用模块化思想,一个控件对应一个xml文件,这样封装后,代码看起来比较清晰,工程结构也显得较为合理,后续如果需要替换控件样式,或者增加新功能的话,开发起来也会比较方便。

 

4.      新建一个xml文件,代表仪表盘

这是仪表盘的设计视图

 

我们切换至代码视图,设置一些必要的属性,包括指针样式,最小刻度,仪表盘风格,背景颜色等,除此之外,仪表盘的指针逻辑也是在这里编写代码,比如我这里设置触摸一次,转10个刻度。

 

 

5.      以此类推,完成距离标尺和声音按钮的模块化创建

这是距离标尺

这是声音按钮

 

完成控件的设计视图后,在代码视图中编写相应的逻辑,这里我编写了距离标尺的颜色逻辑,标尺可以根据刻度的大小,分别用不同颜色显示。声音按钮则可以根据按下或者弹起,分别播放声音和停止播放,图标也相应的发生变化,默认值如图所示,为不播放声音。

 

6.      将所有模块化控件,拖动到主界面上,并且添加相应的资源,比如图标,声音等,至此程序的开发就全部完成了。

图中显示的就是DMI的运行界面图了。

 

7.      点击运行,即可看到桌面版程序运行效果

可以点击仪表盘,距离标尺,声音按钮,DMI界面上相应的控件会发生变化,声音也会开始播放。

距离标尺根据刻度以不同颜色显示,仪表盘可以转动指定刻度,声音按钮切换到播放图标。

下面我们用同一套代码,不做更改,编译出一个Android版本DMI。

8.      构建套件中选择qtandroid

 

再次点击运行

跳出对话框,选择设备,第一个是真实手机,第二个是之前我们创建的虚拟机,这里我选择真机。

 

华为手机上的运行效果

 

来张合影

 

Qt跨平台开发环境搭建到此就全部结束了,谢谢收看!


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
现在ARM行业如火如荼,使用linux作为操作系统的也较多,本文只针对ARM和linux平台下的QT移植和程序测试做一翻详解,对于 wince等系统不涉及。 ARM开发的话必须具备以下硬件或平台条件: 1. ARM硬件开发板,现在处理器用的多是ARM9或者ARM11 2. 针对嵌入式行业的Linux系统内核,以及PC机上的Linux系统开发环境,比如Ubuntu,Redhat,CentOs等 3. ARM软件开发环境,这个比较复杂多样。ARM开发无非是底层驱动移植和开发,以及顶层的应用程序开发,还有相对应的各种调试。不管是开发还是调试,都要用到相对应的工具或软件。驱动开发的领域本文不涉及,而顶层应用程序开发的一个重要环节就是面向客户的图形界面开发,而图形界面开发嵌入式领域用的比较多的是QTQt是诺基亚开发的一个跨平台C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 4. 应用程序在pc机上开发,完成后希望在ARM板上调试,以确认程序的正确性和完整性等,这时应该如何办呢? 这里面涉及的知识比较多,有:开发板引导启动文件Uboot;Linux内核镜像的烧写;交叉编译;搭建QT开发环境;开发板与PC机Linux系统的NFS挂载连接;再就是QT程序在线测试等。 上述中交叉编译之前的所有操作本文不涉及,读者如有不明之处请另找资料,本文意在构建一个QT开发环境,和使用开发板通过NFS挂载后的QT应用程序测试环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值