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

第1篇 Qt5基础(一)Qt开发环境的搭建和hello world

9
回复
17657
查看
[复制链接]
累计签到:826 天
连续签到:4 天
来源: 2017-2-15 21:38:10 显示全部楼层 |阅读模式
Qt开发环境的搭建和hello world


版权声明

该文章原创于Qt开源社区(www.qter.org),作者yafeilinux,转载请注明出处!



导语

       2012年本系列教程的那次更新到现在已经5年时间了,5年中Qt发生了很大的变化,从Qt 4时代已经发展到了现在的Qt5.8。本系列教程的上一次更新是基于Qt 4.8的,虽然Qt 4时代的知识在Qt 5依然可用,但是对于初学者而言,微小的差异都会浪费大量时间去解决。虽然我们早已推出过渡篇来帮助大家将Qt 4代码迁移到Qt 5,不过那个教程不可能面面俱到,现在使用Qt 5学习本系列教程的童靴越来越多,为了节省大家宝贵的时间,让入门的童鞋少走弯路,现在决定使用最新的Qt 5.8重写该系列教程。后面会用很短的时间将前面已有的教程全部进行重写,然后开始新的篇章来探索最新的技术和内容,因为这才是该系列教程的初衷——为Qt爱好者探路、助Qt初学者入门!
       从这一篇我们正式开始Qt 5编程学习。本篇主要讲解Qt编程环境的搭建,为了适应大多数读者的需要,同时避免系统环境的不同而产生不必要的问题,这里选择使用Windows 7作为开发平台。对于使用其他操作系统(例如Linux)的童鞋,可以参照学习。


环境是:Windows 7 + Qt 5.8.0(包含QtCreator 4.2.1



目录

一、Qt Qt Creator的下载和安装
二、创建helloworld程序
三、发布程序
四、Qt工具介绍
五、附录



正文


一、Qt 及 QtCreator的下载和安装


1、下载

       Qt官网主页提供了最新版Qt的下载,不过我们更倾向于去资源下载页面(https://download.qt.io/official_releases/qt/5.8/5.8.0/)进行下载,这里罗列了所有可用版本,便于选择,如下图所示。(PS:单击上方的Parent Directory可以查看其他版本的下载,还可以下载更多其他资源。)


       为了便于后面讲解Android开发,我们这里下载的版本是:
       当然,如果只想进行桌面版本开发,那么也可以下载:


2、安装


       双击运行下载好的qt-opensource-windows-x86-android-5.8.0.exe文件开始进行安装,首先是欢迎界面,这里提示如果没有Qt帐号,可以在后面的步骤中创建一个,我们直接单击Next按钮进入下一步,如下图所示。



       这里可以直接登录Qt帐号,如果没有可以在这里注册一个,不过登录或注册与否都不影响我们的安装,所以直接单击Skip按钮跳过这一步即可,如下图所示。



       后面的步骤可以都保持默认设置,直接单击Next,在Select Component界面可以看下Qt SDK中包含的内容,如下图所示。




       安装好以后默认选择了运行Qt CreatorQt官方集成开发环境),点击Finish按钮关闭向导完成安装。如下图所示。




二、创建hello world程序


1.运行Qt Creator


期待已久的Qt Creator主界面如下图所示。以后再想运行Qt Creator,可以到系统开始菜单中找到它,即Qt Creator 4.2.1 (Community)。




       QtCreator作为Qt官方的开发环境,对Qt各方面支持都非常完善,而且使用起来体验也非常好,所以没有特殊情况,建议大家使用Qt Creator进行Qt开发(PS:小白疑惑:难道还能使用其他IDE进行Qt开发?答疑:当然了,比如用的比较多的VS,不仅如此,即便不用IDE,直接使用记事本也可以编写Qt程序!)。

       QtCreator主界面分为了6个模式:欢迎模式、编辑模式、设计模式、Debug调试模式、项目模式和帮助模式,分别由左侧的6个图标进行切换,对应的快捷键是Ctrl + 数字16。现在显示的就是欢迎界面,这里可以看到一些入门教程、开发的项目列表、Qt提供的示例程序,单击一个示例程序就可以直接打开该项目。单击左侧的Get Started Now会进入帮助模式,并打开Qt Creator指南,刚接触Qt的同学可以把里面的内容简单看下,当然,帮助中的内容是全英文的。


2.创建项目


我们使用欢迎界面Projects页面上的New Project按钮来创建新的项目(当然也可以在文件菜单中创建项目,或者直接使用Ctrl+N快捷键)。在项目模板中选择Application,然后选择Qt Widgets Application,这样便会生成一个桌面Qt图形界面项目,如下图所示。其他项目的创建会在后面的教程中讲到。



       然后更改项目名称和路径,这里名称可以设置为helloworld,注意名称和路径上都不要有中文。如下图所示。




       下面设置构建套件,因为我们下载的是Android版本的Qt,所以这里默认出现了两个构建套件,现在默认勾选了Desktop构建套件,这个是用来编译桌面版程序的,如下图所示。作为Qt学习的入门教程,我们暂时先使用桌面版应用进行讲解,所以这里保持默认设置,关于构建套件会在本篇教程后面讲到。直接单击“下一步”按钮。




       现在显示的是项目的类信息,如下图所示。这里的基类可选的有QMainWindowQWidgetQDialog三个,关于这三个类会在后面的篇章中详细介绍,这里只要知道QMainWindow是一般桌面程序的主窗口即可。类名、头文件、源文件等都可以自定义名称,现在默认勾选了创建界面,这样可以使用设计器来设计主界面,这些内容建议都保持默认,直接单击“下一步”按钮。




       最后是项目管理界面,这里显示了源码目录和项目中自动添加的文件,还可以设置版本控制系统,不过,现在我们没有使用到,所以直接单击“完成”按钮完成项目创建。



3.完成hello world项目


       创建完项目后会进入编辑模式,这里可以对项目文件进行查看和编辑。左侧是项目文件的列表,这里将项目中的文件分为了头文件、源文件、界面文件等进行分类显示。除了显示项目文件,还可以通过下拉菜单来选择类视图、大纲等内容。在右侧就是代码编辑区域,这里对关键字进行了高亮显示。如下图所示。




       单击上方的分栏图标,可以同时显示其他内容,比如这里选择显示“打开文档”和“文件系统”,如下图所示。





       这时会在项目文件列表下显示出已经打开的文档列表和文件系统,如下图所示。



       下面双击界面文件目录下的mainwindow.ui文件,进入设计模式。在这里可以对界面进行可视化设计,也就是所见即所得。左侧是一些常用部件,可以直接拖动到界面上;右侧上方是对象和类列表,下方是部件的属性编辑窗口;在中间,上方是主设计区域,显示了窗口的主界面,下方是Action编辑器以及信号和槽编辑器。
       我们从左侧部件列表中找到Label标签部件并拖动到界面上,然后双击,更改其显示文本为“helloworld”,如下图所示。

       下面单击Qt Creator左侧的运行按钮来编译运行程序,如果前面的文件没有保存,那么可能会弹出保存修改对话框,选中“构建之前总是先保存文件”,然后点击保存所有文件按钮即可,这样以后运行时都会自动保存未保存的文件。hello world程序运行效果如下图所示。


三、发布程序


1.查看项目目录

这里会发现多了一个build-helloworld-Desktop_Qt_5_8_0_MinGW_32bit-Debug目录,里面存放的就是编译生成的文件。该目录的内容如下图所示。




这里有两个目录:debug和release,因为编译时默认是debug版本,所以现在release目录中是空的。打开debug目录,可以看到生成的可执行文件helloworld.exe,如下图所示。




此时双击helloworld.exe文件,会弹出系统错误提示框,提示丢失了Qt5Cored.dll文件。如下图所示。




我们可以在Qt安装路径下找到该文件,我这里是在C:\Qt\Qt5.8.0\5.8\mingw53_32\bin中,将其复制到debug目录里面,然后还会提示缺少其他几个dll文件,依次将它们复制过来即可。完成后helloworld.exe就可以运行了。其实也可以先设置环境变量,以后在本机就可以直接运行生成的可执行文件了,这个可以参考下面的附录。


2.编译release版本程序


可以看到debug版本的可执行文件需要的dll文件很大,因为其中包含了调试信息。而实际发布软件是使用的release版本,下面就来编译release版本的helloworld程序。(PS: 如果前面关闭了Qt Creator,那么需要在Qt Creator中再次打开helloworld项目,可以从欢迎模式的开发页面中打开最近使用的项目,也可以从文件菜单中打开,还可以将源码目录中的.pro文件直接拖入到QtCreator来打开。)
如下图所示,在左下角的目标选择器中设置为release版本,也就是发布版本。完成后运行程序即可。


3.设置应用程序图标


       想要发布的程序有个漂亮的图标,操作非常简单,把要设置的ico图标放到源码目录,例如myico.ico文件,然后打开项目文件helloworld.pro,在最下面添加一行代码:
RC_ICONS = myico.ico
       再次运行程序,可以看到窗口左上角出现了设置的图标,如下图所示。



现在到build-helloworld-Desktop_Qt_5_8_0_MinGW_32bit-Release目录中的release目录,可以看到helloworld.exe已经使用了新的图标,可以将其复制到一个新建文件夹中,然后将需要的几个dll文件(跟debug版本的不是完全一样哦!)也复制过来,分别是Qt安装目录下bin目录中的libgcc_s_dw2-1.dll、libstdc++-6.dll、libwinpthread-1.dll、Qt5Core.dll、Qt5Gui.dll和Qt5Widgets.dll这6个文件,另外,还需要将C:\Qt\Qt5.8.0\5.8\mingw53_32\plugins目录中的platforms文件夹复制过来,里面只需要保留qwindows.dll文件即可,如下图所示。最后将该文件夹压缩打包即可发布。




四、Qt工具介绍


       安装好Qt后,会在开始菜单生成一个目录,如下图所示。



       这里是Qt提供的几个工具软件。其中AssistantQt助手,它已经集成到了QtCreator中,就是帮助模式;DesignerQt设计师,它也集成到了Qt Creator中,就是设计模式; LinguistQt语言家,用来对软件进行国际化翻译;下面的Qt 5.8 for Desktop可以用来进行命令行操作,比如使用命令行来编译程序等。


五、附录


1、设置环境变量


       前面为了运行生成的helloworld.exe文件,复制了一些dll文件。其实,如果只想在本机运行程序,那么不必要每次都复制这些文件,只需要将path环境变量设置一下即可。我们在桌面计算机(我的电脑)图标上右击,选择属性,然后选择高级系统设置,在高级页面选择环境变量,然后在系统变量中找到Path变量,双击,在变量值的最后,添加上Qtbin目录的路径,我这里是; C:\Qt\Qt5.8.0\5.8\mingw53_32\bin(注意,在最前面有个英文半角的分号)。如下图所示。




       这样以后直接在本机运行exe文件就不需要再复制那些dll文件了。其实,还有一种方式也不需要dll文件,那就是静态编译,不过使用静态编译的Qt程序很大,而且不够灵活,所以这里不再讲解,有兴趣的朋友可以在网上搜索一下。


2、构建套件


       打开Qt Creator,选择“工具→选项”菜单,在弹出的对话框左侧选择“构建和运行”,这时就可以看到现在已经有的构建套件(kit),如下图所示。其实,构建套件就是编译工具的集合,这里主要包括了套件名称、设备、编译器、调试器和Qt版本,这些都可以在这里进行选择和设置。现在安装的Qt 5SDK都会默认将桌面版的构建套件设置好,从名称“Desktop Qt 5.8.0MinGW 32bit”就可以看出,现在使用的是5.8.0版本的Qt库和32位的MinGW编译器编译的桌面版程序。在Qt Versions页面,可以看到Android版的Qt库,只是因为现在还没有设置相应的工具,所以无法搭建构建套件,关于该部分内容,可以查看http://www.qter.org/portal.php?mod=view&aid=13这篇教程。





结语

      
          这一篇中通过创建一个hello world程序,主要讲解了Qt Creator开发环境的创建以及Qt程序运行发布等内容。这一篇是最基本的知识,希望大家先按照本篇内容安装好Qt,再来学习下面的内容。在《Qt Creator快速入门》一书中对开发环境以及hello world程序进行了更加详细深入的讲解,有需要的童鞋可以参考一下。



源码下载






本帖子中包含更多资源

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

x
参与人数 4人气 +5 收起 理由
1224220262 + 2 对我帮助很大!
CHI + 1
侯侯大神 + 1 很详细!
FantasyDJC + 1 必须支持!

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

回复

使用道具 举报

累计签到:826 天
连续签到:4 天
2017-3-3 20:50:02 显示全部楼层
yuhaouestc 发表于 2017-3-3 11:25
yafei老师,现在开始学qt的话,直接看这个教程行不行
用不用看之前的教程啊? ...

不用看Qt 4那个了,这个就是那个的重写。
回复 支持 1 反对 0

使用道具 举报

累计签到:71 天
连续签到:1 天
2017-2-17 11:45:47 显示全部楼层
yafei老师,同事用4.7.4,我是自学,我想学5.8.0 ,不知道这两个版本差别很多吗?主要我想有不会的还可以请教一下同事。
回复 支持 反对

使用道具 举报

累计签到:826 天
连续签到:4 天
2017-2-21 10:08:02 显示全部楼层
FantasyDJC 发表于 2017-2-17 11:45
yafei老师,同事用4.7.4,我是自学,我想学5.8.0 ,不知道这两个版本差别很多吗?主要我想有不会的还可以请 ...

你可以对比学习下两个教程!其实差距不是很大。
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2017-3-3 11:25:31 显示全部楼层
yafei老师,现在开始学qt的话,直接看这个教程行不行
用不用看之前的教程啊?
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2017-3-11 11:51:14 显示全部楼层
老大真是良心坛主,早点发现这个地方就好了,不过现在也不晚
回复 支持 反对

使用道具 举报

累计签到:58 天
连续签到:1 天
2017-3-25 13:06:55 显示全部楼层
这个IDE好像反应有点迟钝,不如VS的流畅。

点评

不会吧!  发表于 2017-3-26 22:25
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2018-3-17 22:57:42 显示全部楼层
开始跟着yafei大神的帖子一步步学习
非常好的基础教程
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2018-9-1 17:07:19 显示全部楼层
您好,这个MinGW只能创建32位的程序吗?如果要创建64位的程序应该怎么做呢?希望得到您的指点
回复 支持 反对

使用道具 举报

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