第1篇 基础(一)Qt开发环境的搭建和hello world
导语
从这一篇我们正式开始Qt编程。本篇主要讲解Qt编程环境的搭建。为了适应大多数读者的需要,同时为了避免系统环境的不同而产生不必要的问题,这里选择使用Windows系统的Qt版本。因为在前面几十篇中我们主要讲解基本Qt控件项目的桌面编程,所以没有使用SDK进行安装,而是采用了Qt库与Qt Creator分别下载安装的方式,这样就只需要下载Qt的桌面版本的库。而SDK中默认集成了Qt Creator和Qt桌面库以及Qt移动开发的库,这个会在第40篇至第50篇进行讲解。再者,鉴于Qt一次编写代码,多次编译运行的特点,在我们教程中讲解的例子都是可以直接在其他系统环境下(比如Linux系统)直接编译运行的。
环境:Windows 7 + Qt 4.8.1+ Qt Creator 2.4.1
目录
- 一、Qt 及 Qt Creator的下载和安装
- 二、创建hello world程序
- 三、发布程序
- 四、Qt工具介绍
- 五、附录
正文
一、Qt 及 Qt Creator的下载和安装
1.下载
(已过时)
下载Qt 4.8.1:ftp://ftp.qt-project.org/qt/source/qt-win-opensource-4.8.1-mingw.exe
下载Qt Creator2.4.1:ftp://ftp.qt-project.org/qtcreator/qt-creator-win-opensource-2.4.1.exe
最新下载地址:(已过时)
所有版本的Qt下载地址:ftp://ftp.qt-project.org/qt/source/
所有版本的Qt Creator下载地址:ftp://ftp.qt-project.org/qtcreator/
最新下载地址:http://download.qt-project.org/
其中snapshots里面包含了最新测试版本;official releases里面包含了官方发布版,即最终发布版; archive里面是Qt4.7及以前版本,Qt Creator2.5及以前版本。
更新 (2013-5-1 已过时)
提示:在最近的Qt Creator版本(2.5.0及以后)中已经默认不再包含MinGW,需要自己手动下载安装。可以在这里下载。(注:最新的Qt 5版本中已经默认包含了Qt Creator和MinGW,需根据自己实际情况操作。
官方原文如下:
Notefor Windows MinGW Users
Wedecided to remove the custom MinGW distribution and MinGW gdb from our QtCreator-only Windows binary distribution package. The original reas toinclude it there (it was the predecessor of the Qt SDK) are since a while nowfilled by the Qt SDK. Also, updating the shipped version is a legal hassle aslong as the binaries are provided through Nokia, but we also don’t want to shipstone age versi. We are working on build infrastructure for the Qt Projectitself though, that we ultimately want to use to build Qt Creator packages,snapshots, and more. Currently, on http://builds.qt-project.org , you find QtCreator snapshots for Linux and Windows, and also a Python enabled MinGW gdb(that reportedly doesn’t work on Windows XP). It’s still possible to installMinGW and gdb separately and register them in Qt Creator. Weare not removing the support for it from Qt Creator.
Previouslyshipped MinGW: ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip
Previously shipped MinGW gdb: ftp://ftp.qt.nokia.com/misc/gdb/7.2/qtcreator-gdb-7.2-mingw-x86.zip
Upto date MinGW: http://www.mingw.org (we might provide acompact version like the one in the old installer later)
Python enabled MinGW gdb 7.4: http://builds.qt-project.org/job/gdb-windows/ (compiledon Windows 7, doesn’t work on Windows XP)
更新:2014-10-1
在安装Qt 4.8.6及以后的Qt 4版本时,应该按照安装时的提示来下载相应版本的MinGW,不然编译程序无法运行。例如Qt 4.8.6安装时的提示如下图。
可以直接点击提示给的链接来下载。也可以从这里下载。
更新:(关于Qt 4.8搭配Qt Creator 2.5以后版本的MinGW和无法调试的情况,2013-7-1)
注意:Qt 5以后版本默认包含了所有需要的工具,不存在这里的情况,直接下载安装即可使用!
1.MinGW
如果是Qt 4版本,需要使用GCC 4.4,也就是MinGW需要是4.4版本的,其他新的版本均不可用。
下载:http://pan.baidu.com/share/link?shareid=1521902020&uk=2352291552
备用地址:http://builds.qt-project.org/job/mingw32-windows/lastSuccessfulBuild/artifact/mingw32-qtproject.7z
2.调试器GDB
在Qt 4.8版本,需要下载并指定GDB才能正常调试。
下载地址:http://origin.releases.qt-project.org/gdb/ 或到 社区下载页面进行下载
从这里面根据自己的系统来下载合适的版本。
下载完MinGW和GDB以后,将其解压到Qt的安装目录中,比如这里都解压到了C:Qt目录中。
3.在Qt Creator中的设置。我们需要先在编译器中添加并制定gcc的路径,例如C:Qtmingw32bingcc.exe
如下图所示:
然后在Qt版本中添加并指定qmake的路径,如下图所示。
最后在构建套件中添加并指定编译器、调试器和Qt版本。如下图所示。
2.安装
下载完成后先安装QtCreator,采用默认选项即可,安装路径推荐使用默认的C盘,因为这样可以与教程中的一致,在以后的内容中可以避免一些不必要的问题。然后安装Qt库,当在选择mingw目录时,需要设置为前面安装的Qt Creator目录下的mingw目录。如下图所示。
二、创建hello world程序
1.运行Qt Creator 从桌面上的快捷方式打开Qt Creator,进入眼帘的是Qt Creator的欢迎界面。如下图所示。
Qt Creator分为了七个模式:欢迎模式、编辑模式、设计模式、调试模式、项目模式、分析模式和帮助模式,分别由左侧的七个图标进行切换,对应的快捷键是Ctrl +
数字1到7。现在显示的就是欢迎界面,这里可以看到一些入门教程、开发的项目列表、Qt提供的示例程序,也可以创建或打开一个项目。
2.创建项目
我们使用欢迎页面上方的“创建项目”按钮来创建新的项目(当然也可以在文件菜单中创建项目)。在项目模板中选择Qt 控件项目,然后选择QtGui应用,这样便会生成一个一般的桌面Qt图形界面项目,如下图所示。其他项目的创建会在后面的教程中讲到。
然后更改项目名称和路径,这里名称可以设置为helloworld
,注意名称和路径上都不要有中文。如下图所示。
点击下一步后,会弹出目标设置对话框,这里显示没有有效的Qt版本,并提示需要在工具/选项菜单中进行设置。如下图所示。下面我们就来添加Qt版本。
3.关联Qt库
因为我们这里是分别下载Qt Creator和Qt库的方式,所以安装后它们并没有关联,这样是无法编译程序的。下面在Qt Creator中关联Qt库。打开工具→选项菜单,然后选择“构建和运行”一项,再进入Qt版本选项卡。如下图所示。
我们可以手动设置Qt版本的关联,现在点击右上角的“添加”按钮,然后会让选择qmake.exe
文件,我们在Qt(不是Qt Creator)安装目录的bin目录中找到该文件并打开。如下图所示。
现在已经默认生成了版本信息,我们点击确定按钮即可。如下图所示。
当设置完Qt版本,再次回到欢迎界面后,可以发现“演示和范例”中已经显示出了各种示例程序,大家可以打开自己需要的一个例子。这个我们先不进行讲解,下面继续来完成hello world程序。
4.完成hello world项目
还按照前面的流程创建项目,在目标设置页面默认选择为了桌面Qt版本,因为现在我们只关联了这一个桌面版本的Qt库,所以只能编译为桌面程序。如下图所示。这里可以选中“使用影子构建”,这样编译生成的文件会和源码分别存放,这个在下面的内容中会看到。
点击下一步,在显示的类信息中将基类选择为QDialog
,就是说我们将程序设置为了一个对话框,然后将类名更改为MyDialog
。如下图所示。
再点击下一步进入汇总页面,这里可以选择版本控制系统,我们这里没有用到,所以不进行设置,点击完成按钮来完成项目的创建。如下图所示。
5.编辑运行项目
创建完项目后会进入编辑模式,这里可以对项目文件进行查看和编辑。左侧是项目文件的列表,这里将项目中的文件分为了头文件、源文件等,进行分类显示。除了显示项目文件,还可以通过下拉菜单来选择类视图、大纲等内容。在右侧就是代码编辑区域,这里对关键字进行了高亮显示。如下图所示。
我们双击界面文件中的mydialog.ui
文件,进入设计模式。在这里可以对界面进行可视化设计,也就是所见即所得。左侧的是一些常用部件,可以直接拖动到界面上;右侧是对象和类列表,下面是部件的属性编辑窗口;在中间,上方是主设计区域,显示了窗口的主界面,下面是Action编辑器以及信号和槽编辑器窗口。
我们从左侧部件列表中找到Label标签部件并拖动到界面上,然后双击,更改其显示文本为“helloworld”,如下图所示。
下面我们单击Qt Creator左侧的 运行按钮来编译运行程序,这时会弹出保存修改对话框,如下图所示。这里选中“构建之前总是先保存文件”,然后点击保存所有文件按钮。
最后hello world程序成功运行,效果如下图所示。
三、发布程序
1.查看工程目录
这里会发现多了一个helloworld-build-desktop-Qt_4_8_1__4_8_1____
目录,里面存放的就是编译生成的文件。这就是前面创建项目讲到的 “使用影子构建” ,如果没有选中这个,那么生成的文件就会和源码在同一个目录里。该目录的内容如下图所示。
这里有两个目录:debug
和release
,分别用于存放debug方式和release方式编译生成的可执行文件。因为编译时默认是debug
版本,所以现在release
目录中是空的。打开debug
目录,可以看到生成的可执行文件helloworld.exe
如下图所示。
此时双击helloworld.exe
文件,会弹出系统错误提示框,表明丢失了mingwm10.dll
文件。如下图所示。
其实我们可以在Qt安装路径下找到该文件,我这里是在C:Qt4.8.1bin
中,将其复制到debug
目录里面,然后还会提示缺少其他几个dll文件,依次将它们复制过来即可。完成后helloworld.exe
就可以运行了。其实也可以先设置环境变量,以后在本机就可以直接运行生成的可执行文件了,这个可以参考下面的附录。
2.编译release版本程序
可以看到debug版本的可执行文件需要的dll文件是很大的,因为其中包含了调试信息。而我们实际发布软件是使用的release版本,下面我们就来编译release版本的helloworld程序。如果前面关闭了Qt Creator,那么需要在Qt Creator中再次打开helloworld项目,可以从欢迎模式的开发页面中打开最近使用的项目,也可以从开始菜单中打开,还可以将源码目录中的.pro文件直接拖入到QtCreator来打开。
然后将版本设置为release版本,也就是发布版本。如下图所示。完成后运行程序即可。
最后,可以从release
目录中将helloworld.exe
复制出来,然后将需要的几个dll文件(跟debug版本的不是完全一样哦!)也复制过来,将它们放到一个文件夹中,打包进行发布。
补充:如果要给生成的exe可执行文件更换一个自定义图标,可以这样做:
1.在项目中添加一个myapp.rc
(名字可以随意)文件,然后在里面输入下面一行代码:
IDI_ICON1 ICON DISCARDABLE "appico.ico"
这里的appico.ico就
是自己的.ico图标文件;
2.在.pro
项目文件中添加下面一行代码:
RC_FILE = myapp.rc
3.重新编译
四、Qt工具介绍
安装好Qt后,会在开始菜单生成一个目录,如下图所示。
这里是Qt提供的几个工具软件。其中Assistant是Qt助手,它已经集成到了Qt Creator中,就是帮助模式;Designer是Qt设计师,它也集成到了QtCreator中,就是设计模式;Exampleand Demos是Qt示例程序和演示程序,其中的演示程序就是一些比较大型的程序,这个我们在欢迎模式已经看到了,不过这里可以直接运行这些程序;Linguist是Qt语言家,是用来对软件进行国际化翻译的;下面的Qt 4.8.1 Command Prompt可以用来进行命令行操作,比如使用命名来编译程序等。
五、附录
前面为了运行生成的helloworld.exe
文件,复制了一些dll文件。其实,如果只想在本机运行程序,那么不必要每次都复制这些文件,只需要将path
环境变量设置一下即可。我们在桌面计算机(我的电脑)图标上点击鼠标右键,选择属性,然后选择高级系统设置,在这里在高级页面选择环境变量,然后在系统变量中找到Path
变量,双击,在变量值的最后,添加上Qt的bin
目录的路径,我这里是;C:Qt4.8.1bin
(注意,在最前面有个英文半角的分号)。如下图所示。
这样以后就不需要再复制那些dll文件了。其实,还有一种方式也不需要dll文件,那就是静态编译,不过使用静态编译的Qt程序很大,而且不够灵活,所以这里不再讲解,有兴趣的朋友可以在网上搜索一下。
结语
这一篇中通过创建一个hello world程序,主要讲解了Qt Creator开发环境的创建以及Qt程序运行发布等内容。这一篇是最基本的知识,希望大家先看完本篇再来学习下面的内容。在《Qt Creator快速入门》一书中对开发环境以及hello world程序进行了更加详细深入的讲解,有需要的童鞋可以参考一下。
涉及到的源码下载