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

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

269
回复
333339
查看
  [复制链接]
累计签到:1564 天
连续签到:1 天
来源: 2013-3-24 19:44:21 显示全部楼层 |阅读模式
Qt开发环境的搭建和helloworld

版权声明

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

导语

从这一篇我们正式开始Qt编程。本篇主要讲解Qt编程环境的搭建。为了适应大多数读者的需要,同时为了避免系统环境的不同而产生不必要的问题,这里选择使用Windows系统的Qt版本。因为在前面几十篇中我们主要讲解基本Qt控件项目的桌面编程,所以没有使用SDK进行安装,而是采用了Qt库与Qt Creator分别下载安装的方式,这样就只需要下载Qt的桌面版本的库。而SDK中默认集成了Qt CreatorQt桌面库以及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下载地址:ftp://ftp.qt-project.org/qt/source/
所有版本的Qt Creator下载地址:ftp://ftp.qt-project.org/qtcreator/

最新下载地址:http://download.qt.io/

其中snapshots里面包含了最新测试版本;official releases里面包含了官方发布版,即最终发布版; archive里面是Qt4.7及以前版本,Qt Creator2.5及以前版本。
教程中使用Qt 4.8.x版本,这里下载Qt 4.8.1(使用最新的Qt 4.8.6也可。):
这里的下载地址为:http://download.qt.io/archive/qt/4.8/4.8.1/
下载文件为: qt-win-opensource-4.8.1-mingw.exe


更新  (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.
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 ... ingw32-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:\Qt\mingw32\bin\gcc.exe 如下图所示:



然后在Qt版本中添加并指定qmake的路径,如下图所示。



最后在构建套件中添加并指定编译器、调试器和Qt版本。如下图所示。




2.安装
下载完成后先安装QtCreator,采用默认选项即可,安装路径推荐使用默认的C盘,因为这样可以与教程中的一致,在以后的内容中可以避免一些不必要的问题。然后安装Qt库,当在选择mingw目录时,需要设置为前面安装的Qt Creator目录下的mingw目录。如下图所示。


二、创建hello world程序

1.运行Qt Creator
从桌面上的快捷方式打开Qt Creator,进入眼帘的是Qt Creator的欢迎界面。如下图所示。

Qt Creator分为了七个模式:欢迎模式、编辑模式、设计模式、调试模式、项目模式、分析模式和帮助模式,分别由左侧的七个图标进行切换,对应的快捷键是Ctrl + 数字17。现在显示的就是欢迎界面,这里可以看到一些入门教程、开发的项目列表、Qt提供的示例程序,也可以创建或打开一个项目。

2.创建项目
我们使用欢迎页面上方的“创建项目”按钮来创建新的项目(当然也可以在文件菜单中创建项目)。在项目模板中选择Qt 控件项目,然后选择QtGui应用,这样便会生成一个一般的桌面Qt图形界面项目,如下图所示。其他项目的创建会在后面的教程中讲到。

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


  点击下一步后,会弹出目标设置对话框,这里显示没有有效的Qt版本,并提示需要在工具/选项菜单中进行设置。如下图所示。下面我们就来添加Qt版本。


3.关联Qt
因为我们这里是分别下载Qt CreatorQt库的方式,所以安装后它们并没有关联,这样是无法编译程序的。下面在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:\Qt\4.8.1\bin中,将其复制到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(名字可以随意)文件,然后在里面输入下面一行代码:
  1. IDI_ICON1               ICON    DISCARDABLE     "appico.ico"
复制代码
这里的appico.ico就是自己的.ico图标文件;

2.在.pro项目文件中添加下面一行代码:
  1. RC_FILE = myapp.rc
复制代码
3.重新编译


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

这里是Qt提供的几个工具软件。其中AssistantQt助手,它已经集成到了Qt Creator中,就是帮助模式;DesignerQt设计师,它也集成到了QtCreator中,就是设计模式;Exampleand DemosQt示例程序和演示程序,其中的演示程序就是一些比较大型的程序,这个我们在欢迎模式已经看到了,不过这里可以直接运行这些程序;LinguistQt语言家,是用来对软件进行国际化翻译的;下面的Qt 4.8.1 Command Prompt可以用来进行命令行操作,比如使用命名来编译程序等。

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

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

结语

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


涉及到的源码下载:


上一篇:第0篇 开始学习Qt 与Qt Creator

下一篇:第2篇 编写Qt多窗口程序

返回:系列教程目录









本帖子中包含更多资源

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

x
参与人数 22人气 +34 收起 理由
lansexiaoda + 2 必须支持!
szjgjg + 1
london + 1 很实用!
oxiaolong + 1
施牧文 + 2 对我帮助很大!
Krysta1 + 2 对我帮助很大!
linlin + 2 对我帮助很大!
shikeqin + 2 必须支持!
leepeng + 2 很实用!
Martin + 2 很详细!
星宇际越客 + 2 很实用!
mao + 2 对我帮助很大!
一个椰子 + 2 很详细!
qtandme + 1 对我帮助很大!
qtkang + 2 写的非常细致到位
bamuxiaozi + 1 对我帮助很大!
Inaho.zero + 2 对我帮助很大!
xiongxiong + 2
小小苹果 + 2 很实用!
Daniel + 1 很实用!

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

回复

使用道具 举报

尚未签到

2013-3-25 16:51:10 显示全部楼层
你好,我看到你写过很多qt基础的blog,这里面怎么没有啊

点评

还没有更新出来。论坛正在测试!会陆续更新的。  发表于 2013-3-25 17:17
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2013-4-23 19:20:25 显示全部楼层
今天把Qt5.1给卸了,然后重新安装了Qt4.8.4和QtCreator2.7,发现如果不添加环境变量的话,编译会说"mingw32-make.exe"崩溃的,亚飞老师最好注明一下吧
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-4-24 09:05:16 显示全部楼层
Dragonite 发表于 2013-4-23 19:20
今天把Qt5.1给卸了,然后重新安装了Qt4.8.4和QtCreator2.7,发现如果不添加环境变量的话,编译会说"mingw32 ...

这个应该不会吧!如果按照正常设置,是不用手动添加环境变量的。下载一个老点版本的Qt Creator试试吧,比如Qt 2.6.2,看是不是Qt Creator的问题。
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2013-5-23 09:43:09 显示全部楼层
刚接触,正一点一点照着学,很有用的教程。

点评

谢谢支持,不过该板块严谨灌水,请下次发表有意义的回复!  发表于 2013-5-23 09:45
回复 支持 反对

使用道具 举报

尚未签到

2013-5-29 15:19:29 显示全部楼层
编译运行的速度好慢!什么情况
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-5-29 21:46:14 显示全部楼层
zhanglin 发表于 2013-5-29 15:19
编译运行的速度好慢!什么情况

你什么系统,什么配置?一般这种小程序几秒钟就可以运行了。
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-1 10:06:41 显示全部楼层
为何我的,在一、Qt 及 Qt Creator的下载和安装 的第二小步里面的然后安装Qt库,当在选择mingw目录时,需要设置为前面安装的Qt Creator目录下的mingw目录,完成安装之后,找不到mingw 这个文件夹。

后来我直接装了个QT_SDK_1.1.2,什么都有了。
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-6-2 22:19:21 显示全部楼层
caikeyter 发表于 2013-6-1 10:06
为何我的,在一、Qt 及 Qt Creator的下载和安装 的第二小步里面的然后安装Qt库,当在选择mingw目录时,需要 ...

嗯。这个安装好以后还是要设置一下的。

sdk安装好以后就自动关联好了,因为它自带了Qt Creator。
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-6-3 21:54:09 显示全部楼层
专业黑哨 发表于 2013-6-3 17:40
我写的一个练习的小程序在qt creator中无法运行,于是我直接去打开.exe文件
但是弹出说我缺少 libgcc_s_dw2 ...

在Qt安装目录的bin目录下面有
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-6-4 22:44:33 显示全部楼层
lzhgames 发表于 2013-6-4 11:34
今天去下载,发现楼主给的链接都打不开了?

我这里测试还是可以下载的。也可以试一下最新的下载地址:

所有版本的Qt下载地址:ftp://ftp.qt-project.org/qt/source/
所有版本的Qt Creator下载地址:ftp://ftp.qt-project.org/qtcreator/
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-14 15:01:42 显示全部楼层
郁闷啊,今天给qt creater 升级一下,之前安装的是SDK 1.1.2 ,里面带的 Qt4.7.3 的,升级的4.8 的之后,4.7 的没了,然后使用qt creater  也用不了。于是卸载了,重新安装教程安装 qt creater 2.7 和qt4.8.4,在配置 “构建和运行”一项,再进入Qt版本选项卡 的时候,选了D:\Qt\4.8.4\bin\qmake.exe 后,下面出现一行字,说没有这个版本的编辑器之类的。
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-14 15:03:06 显示全部楼层
亚飞老师,能不能弄个视频教程啊?我都是安装这个教程一步步配置的,还是不行,郁闷啊。真不知道是哪里出错了。
回复 支持 反对

使用道具 举报

累计签到:84 天
连续签到:1 天
2013-6-14 15:53:20 显示全部楼层
不容易啊,终于弄好了,下载了一个MinGW,解压到安装目录的MinGW, 然后在QT creater 里面的 工具=》选项=》构建和运行=》编辑器,添加一个 MinGW 然后选择D:\Qt\qtcreator-2.7.1\MinGW\bin\mingw32-g++.exe。QT 版本里面也就自动关联上了。不知道“构建套件(kit)"这个是干嘛的、
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-6-14 16:23:45 显示全部楼层
caikeyter 发表于 2013-6-14 15:53
不容易啊,终于弄好了,下载了一个MinGW,解压到安装目录的MinGW, 然后在QT creater 里面的 工具=》选项=》 ...

如果同时存在多个版本,在新建项目的时候会让选择构建套件的,里面包含了Qt版本,编译器版本等。
回复 支持 反对

使用道具 举报

尚未签到

2013-6-22 01:14:11 显示全部楼层
图标问题,,上面添加的文件时用的app.rc,,所以RC_FILE = myapp.rc 应该改为RC_FILE = app.rc 吧,,,
回复 支持 反对

使用道具 举报

尚未签到

2013-6-22 01:18:56 显示全部楼层
开始安装用qt creator2.7,,发现按照这个教程安装有问题,,就是那个mingw,,好像没有找到,,后来只有安装Qt Creator 2.4.1就有那个mingw文档了就好了,,新手苦逼啊!
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2013-6-23 17:34:08 显示全部楼层
huangbing110110 发表于 2013-6-22 01:18
开始安装用qt creator2.7,,发现按照这个教程安装有问题,,就是那个mingw,,好像没有找到,,后来只有安 ...

嗯。那个mingw确实是有的版本有,有的版本没有。不过现在已经好了,Mingw版本的Qt基本上都包含了Qt Creator和mingw的,直接安装即可运行。
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-7-12 09:49:32 显示全部楼层
按照教程一步步来,在打开debug里面的helloworld.exe时设置好环境变量或复制mingwm10.dll和libgcc_s_dw2-1到文件夹后,出现错误:

“无法定位程序输入点_Z5qreePv于动态链接库QtCored4.dll上”

新手急求指教@yafeilinux

回复 支持 反对

使用道具 举报

累计签到:19 天
连续签到:1 天
2013-7-13 15:11:44 显示全部楼层
平凡的你我 发表于 2013-7-12 09:49
按照教程一步步来,在打开debug里面的helloworld.exe时设置好环境变量或复制mingwm10.dll和libgcc_s_dw2-1 ...

你确定你也把QtCored4.dll(从Qt的安装目录下的bin文件夹里)文件也拷到了debug文件夹里?
如果还提示其他文件缺失,那也要拷过去,不然估计还会有问题。
回复 支持 反对

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了