Qt跨平台开发环境搭建

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跨平台开发环境搭建到此就全部结束了,谢谢收看!


你可能感兴趣的:(工作,Qt,c++)