找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

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

admin 2019-3-11 05:55 724人围观 Qt相关

来源于微信公众号: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 及 QtCreator的下载和安装


  • 下载


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



       为了便于后面讲解Android开发,我们这里下载的版本是:

qt-opensource-windows-x86-android-5.8.0.exe

       当然,如果只想进行桌面版本开发,那么也可以下载:

qt-opensource-windows-x86-mingw530-5.8.0.exe


  • 安装


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



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



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



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



二、创建hello world程序


  • 运行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 + 数字1到6。现在显示的就是欢迎界面,这里可以看到一些入门教程、开发的项目列表、Qt提供的示例程序,单击一个示例程序就可以直接打开该项目。单击左侧的Get Started Now会进入帮助模式,并打开Qt Creator指南,刚接触Qt的同学可以把里面的内容简单看下,当然,帮助中的内容是全英文的。


  • 创建项目


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



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



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



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



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




  • 完成hello world项目


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



       单击上方的分栏 

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



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



       下面双击界面文件目录下的mainwindow.ui文件,进入设计模式。在这里可以对界面进行可视化设计,也就是所见即所得。左侧是一些常用部件,可以直接拖动到界面上;右侧上方是对象和类列表,下方是部件的属性编辑窗口;在中间,上方是主设计区域,显示了窗口的主界面,下方是Action编辑器以及信号和槽编辑器。

       我们从左侧部件列表中找到Label标签部件并拖动到界面上,然后双击,更改其显示文本为“helloworld”,如下图所示。



       下面单击Qt Creator左侧的 

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



三、发布程序


  • 查看项目目录


这里会发现多了一个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就可以运行了。其实也可以先设置环境变量,以后在本机就可以直接运行生成的可执行文件了,这个可以参考下面的附录。


  • 编译release版本程序



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

如下图所示,在左下角的目标选择器中设置为release版本,也就是发布版本。完成后运行程序即可。




  • 设置应用程序图标


       想要发布的程序有个漂亮的图标,操作非常简单,把要设置的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提供的几个工具软件。其中Assistant是Qt助手,它已经集成到了QtCreator中,就是帮助模式;Designer是Qt设计师,它也集成到了Qt Creator中,就是设计模式; Linguist是Qt语言家,用来对软件进行国际化翻译;下面的Qt 5.8 for Desktop可以用来进行命令行操作,比如使用命令行来编译程序等。

五、附录


  • 设置环境变量


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



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


  • 构建套件


       打开Qt Creator,选择“工具→选项”菜单,在弹出的对话框左侧选择“构建和运行”,这时就可以看到现在已经有的构建套件(kit),如下图所示。其实,构建套件就是编译工具的集合,这里主要包括了套件名称、设备、编译器、调试器和Qt版本,这些都可以在这里进行选择和设置。现在安装的Qt 5的SDK都会默认将桌面版的构建套件设置好,从名称“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程序进行了更加详细深入的讲解,有需要的童鞋可以参考一下。


欢迎长按下图→识别图中二维码或者扫一扫关注我的公众号:




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:yafeilinux和他的朋友们,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

1人点赞鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......