Qt5.12下载网址: http://download.qt.io/archive/qt/5.12/5.12.2/
注意: 官网很慢,所以我们一般是使用国内镜像网站:
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qt/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/official_releases/qt/
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/
注意:安装时尽量选择某个高的版本,比如你要安装qt5.14.x系列的版本,目前有qt5.14.0、qt5.14.2、qt5.14.3,那就选择qt5.14.3
例子:不要安装qt5.14.0,因为没有办法打包,是官方bug。这个bug在qt5.14.2和qt5.14.3中得到了解决
将 Qt 软件的下载地址复制到迅雷的下载框,如果迅雷官方有资源,就会自动识别,下载速度就很快了。
如何找到 Qt 软件的下载地址呢?以清华大学开源软件镜像站为例,进入 Qt 5.9.0 的下载目录(https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.12/5.12.0/),在某个链接处单击鼠标右键,会弹出一个菜单,选择“复制链接地址”,如下图所示:
然后再粘贴到迅雷的下载框即可
Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这里下载,具体地址是: http://download.qt.io/
项目 | 说明 |
---|---|
snapshots | 预览版,最新的开发测试中的 Qt 库和开发工具。 |
online | Qt 在线安装源。 |
official_releases | 正式发布版,是与开发版相对的稳定版 Qt 库和开发工具(可以下载Qt开发环境和源代码) |
ministro | 迷你版,目前是针对 Android 的版本。 |
learning | 有学习 Qt 的文档教程和示范视频。 |
development_releases | 开发版,有新的和旧的不稳定版本,在 Qt 开发过程中的非正式版本。 |
community_releases | 社区定制的 Qt 库,Tizen 版 Qt 以及 Qt 附加源码包。 |
archive | 各种 Qt 开发工具安装包,新旧都有(可以下载 Qt 开发环境和源代码)。 |
archive 和 official_releases 两个目录都有最新的 Qt 开发环境安装包,我们以 archive 目录里的内容为例来说明。点击进入 archive 目录:
项目 | 说明 |
---|---|
vsaddin | 这是 Qt 针对 Visual Studio 集成的插件 |
qtcreator | 这是 Qt 官方的集成开发工具,但是 qtcreator 本身是个空壳,它没有编译套件和 Qt 开发库。除了老版本的 Qt 4 需要手动下载 qtcreator、编译套件、Qt 开发库进行搭配之外,一般用不到。对于我们教程压根不需要下载它,因为 Qt 5 有专门的大安装包,里面包含开发需要的东西,并且能自动配置好。 |
qt | 这是 Qt 开发环境的下载目录,我们刚说的 Qt 5 的大安装包就在这里面。 |
online_installers | 在线安装器,国内用户不建议使用,在线安装是龟速,还经常断线。我们教程采用的全部是离线的大安装包。 |
我们再进入 qt 子目录 ,看到如下列表:
这个 qt 目录包含了所有的 Qt 版本,从 1.0 到目前的 6.0。
进入 5.12 目录,会看到各种子版本:
这里解释一下 Qt 的版本号,比如 5.12.8 是完整的 Qt 版本号,第一个数字 5 是大版本号(major),第二个数字 12 是小版本号(minor),第三个数字 8 是补丁号(patch)。 只要前面两个数字相同,Qt 的特性就是一致的,最后的数字是对该版本的补丁更新。也就是说本教程对 5.12.*
系列的 Qt 都是通用的,下载5.12.*
任意一个版本都可以,这里我们以下载 5.12.2。
点击5.12.2:
我们以 Windows 安装包(qt-opensource-windows-x86-5.9.0.exe)讲解一下 Qt 安装包命名规则,其中:
Step1: 管理员权限运行安装包, 稍等片刻, 然后点击next
Step2: 如果没有账号, 则选择skip,不过现在已经不允许skip了,必须先注册一个
Step3: Qt设置欢迎界面, 选择下一步
Step4: 选择安装路径
Step5: 选择组件, 然后选择下一步
Qt 的安装组件分为两部分:一部分是“Qt xxx.xxx”分类下的,该分类包含的是真正的 Qt 开发库组件;另一部分是“Tools”分类下的,该分类包含的是集成开发环境和编译工具。
“Qt xxx.xxx”组件说明:(一般选择MinGW xxx, Qt xxx就可以了)
组件 | 说明 |
---|---|
MSVC *** | 针对 Windows 平台上的 MSVC 编译器的 Qt 组件,如 msvc2015 32-bit 和 msvc2015 64-bit 等。安装该组件需要计算机上已经安装相应版本的 Visual Studio。 |
MinGW *** | 编译器模块。MinGW 是 Minimalist GNU for Windows 的缩写,MinGW 是 Windows 平台上使用的 GNU 工具集导入库的集合。 |
UWP *** | WP 是 Windows 10 中 Universal Windows Platform 的简称,有不同编译器类型的 UWP,属于 MSVC 编译器生成的 Qt 库。如果不是开发 UWP 应用程序,就不需要,直接忽略。 |
Android *** | 这是针对安卓应用开发的 Qt 库,一般情况下用不到 |
Sources | |
Qt *** | Qt 的附加模块,大部分建议安装,这些附加模块括号里的 TP 是指 Technology Preview ,技术预览模块的意思,还处在功能测试阶段,不是正式版模块;附加模块括号里的 Deprecated 是指抛弃的旧模块,兼容旧代码使用的,一般用不到(如果不是为和以前开发的源程序兼容,过时的模块不要选择)。这些附加模块读者可以选择部分或都勾选了安装,占用空间不大。 |
部分组件说明:
“Tools”分类下的开发组件(一般选择Qt Creator xxx 和MinGW xxxxx)
组件 | 说明 |
---|---|
Qt Creator xxx | 这是集成开发环境,强制安装的,以后所有的项目和代码都在 Qt Creator 里面新建和编辑。 |
Qt Creator xxxx CDB Debugger surpport | 用于和 CDB 调试工具对接,默认安装,一般用于调试 VC 编译的 Qt 程序。 |
MinGW xxxxx | 这是开源的编译器套件,建议安装 |
Strawberry Perl 5.22.1.3 | 用于编译 Qt 源代码的 Perl 开发环境,不需要安装。如果读者以后用到,也可以另外手动安装,在搜索引擎搜索 Strawberry Perl 关键词,去 Strawberry Perl 官网下载最新的安装包是一样用的。 |
Step6: 同意许可协议, 然后选择下一步
Step7: 开始菜单快捷方式
可以修改在菜单中显示的名字, 然后下一步
Step8: 点击安装即可
Step9: 选择下一步
Step10: 完成Qt向导
Step11: 完成安装, 打开软件
安装完成之后,在 Windows“开始”菜单中会看到 Qt 的 程序组。
程序 | 说明 |
---|---|
Assistant(Qt 助手) | 用来查看帮助文档,已被集成在 Qt Creator 中。 |
Designer(Qt 设计师) | 图形界面可视化编辑工具,已被集成在 Qt Creator 中,在 Qt Creator 中编辑或创建界面文件时,就可以自动打开。 |
Linguist(Qt 语言家) | 多国语言翻译支持工具,可以用来编辑语言资源文件,在开发多语言界面的应用程序时会用到。 |
Qt 5.xx.x(MinGW 5.3.0 32bit) | Qt 命令行工具,用来配置 Qt 开发环境(主要是设置 PATH 变量) |
qt自带了很多小例子,是我们学习的好帮手。运行方法:
step1:打开软件,进入欢迎–>示例,然后随便点击一个实例
step2:点击config project
step:这个时候它会调到编辑页面,可以看出打开了这个项目,接下来我们就可以运行这个项目了
Step1: 新建一个项目
Step2: 选择Qt控件项目
Step3: 项目介绍和位置
Step4: 选择Kit
默认即可
Step6: 项目管理
Step7: 运行项目
Step8: 结果测试
如果出现一个窗口, 表示软件已经安装好了
不同版本 Qt 的安装目录结构大同小异,本节我们以 Qt 5.9.0 为例来说明,如下图所示。
注意,~\5.9\ 和 ~\Tools\ 目录下都有 mingw53_32 目录(图中我用红色标出来了),但是两者是有区别的:
QtCreator 使用 MSVC2015 编译生成的,所以安装目录里有一个 vcredist 文件夹存储 VC 运行库安装文件。
MaintenanceTool.exe ,对于离线安装包,它只能用于删除软件包,如果 Qt 开发环境是用在线安装方式装的,这个工具还可以管理开发环境组件和升级组件
Qt 类库的帮助文件位于 Docs 文件夹里,需要用 Qt Assistant 工具才能查看
Examples 里是示例代码,可以用 QtCreator 集成开发环境打开各个示例。
Qt 不是凭空产生的,它是基于现有工具链打造而成的,它所使用的编译器、链接器、调试器等都不是自己的,Qt 官方只是开发了上层工具。下面我们分几个部分讲解 Qt 使用到的工具链。
在上个世纪八十年代,计算机都是奢侈品,操作系统里最著名的是 Unix 家族, 当时还没有 Windows、Linux 之类的,Unix 系统都是商业软件,里面的应用软件也是商业软件, 全是封闭的环境。
系统程序员 Richard M. Stallman (RMS) 在此环境下创立了与众不同的 GNU 项目 (GNU’s Not Unix) , 以及推进自由软件发展的 Free Software Foundation (FSF) 自由软件基金会。
GNU 项目是为了创建自由的类 Unix 系统,也因此开发出来很多开源的系统工具,其中非常著名的就是 GCC (GNU Compiler Collection,GNU编译器套件)。
现在我们知道,GUN 开发类 Unix 系统的项目失败了,但是它开发的一系列工具集却用到了后来的 Linux 内核上,两者结合形成了今天的各种 Linux 发行版
在 GNU 工具集里面,开发时常见到的几个罗列如下(这些工具通常位于 Linux 或 Unix 系统里的 /usr/bin/ 目录):
工具 | 说明 |
---|---|
gcc | GNU C 语言编译器 |
g++ | GNU C++ 语言编译器。 |
ld | GNU 链接器,将目标文件和库文件链接起来,创建可执行程序和动态链接库。 |
ar | 生成静态库 .a ,可以编辑和管理静态链接库。 |
make | 生成器,可以根据 makefile 文件自动编译链接生成可执行程序或库文件。 |
gdb | 调试器,用于调试可执行程序。 |
ldd | 查看可执行文件依赖的共享库(扩展名 .so,也叫动态链接库)。 |
原本 GNU 工具只在 Linux/Unix 系统里才有,随着 Windows 系统的广泛使用, 为了在 Windows 系统里可以使用 GNU 工具,诞生了 MinGW(Minimalist GNU for Windows) 项目,利用 MinGW 就可以生成 Windows 里面的 exe 程序和 dll 链接库。
需要注意的是,MinGW 与 Linux/Unix 系统里 GNU 工具集的有些区别:
*.a
库引用文件,生成的可执行程序运行时依赖 *.dll
,而 Linux/Unix 系统里链接时和运行时都是使用*.so
。另外 MinGW 里也没有 ldd 工具,因为 Windows 不使用 .so 共享库文件。如果要查看 Windows 里可执行文件的依赖库,需要使用微软自家的 Dependency Walker 工具。Windows 里面动态库扩展名为 .dll,MinGW 可以通过 dlltool 来生成用于创建和使用动态链接库需要的文件,如 .def 和 .lib。
MinGW 原本是用于生成 32 位程序的,随着 64 位系统流行起来, 从 MinGW 分离出来了 MinGW-w64 项目,该项目同时支持生成 64 位和 32 位程序。Qt 的 MinGW 版本库就是使用 MinGW-w64 项目里面的工具集生成的。
如今, MinGW 现已被 MinGW-w64 所取代。感兴趣的可以阅读 win10:mingw-w64安装教程
由于ming-gw本身主要是编译链接等工具和头文件、库文件,并不包含系统管理,文件操作之类的shell环境,这对希望用类Unix命令的开发者来说是不够用的。所以MinWG官方又推出了MSYS(Minimal SYStem),相当于是一个部署在Windows系统中的小型Unix系统环境,移植了很多Unix/Linux命令行和配置文件等,是对MinGW的扩展。
MSYS 对于熟悉 Unix/Linux 系统环境或者要尝试学习 Unix/Linux 系统的人都是一种便利。MSYS 和 MinGW 的安装升级都是通过其官方的 mingw-get 工具实现,二者是统一下载安装管理的。
对于 MinGW-w64 项目,它对应的小型系统环境叫 MSYS2(Minimal SYStem 2),MSYS2 是 MSYS 的衍生版,不仅支持 64 位系统和 32 位系统,还有自己的独特的软件包管理工具,它从 Arch Linux 系统里移植了 pacman 软件管理工具,所以装了 MSYS2 之后,可以直接通过 pacman 来下载安装软件,而且可以自动解决依赖关系、方便系统升级等。装了 MSYS2 之后,不需要自己去下载 MinGW-w64,可以直接用 pacman 命令安装编译链接工具和 git 工具等。
工具 | 说明 |
---|---|
qmake | 核心的项目构建工具,可以生成跨平台的 .pro 项目文件,并能依据不同操作系统和编译工具生成相应的 Makefile,用于构建可执行程序或链接库 |
uic | User Interface Compiler,用户界面编译器,Qt 使用 XML 语法格式的 .ui 文件定义用户界面,uic 根据 .ui 文件生成用于创建用户界面的 C++ 代码头文件,比如 ui_*****.h 。 |
moc | Meta-Object Compiler,元对象编译器,moc 处理 C++ 头文件的类定义里面的 Q_OBJECT 宏,它会生成源代码文件,比如 moc_*****.cpp ,其中包含相应类的元对象代码,元对象代码主要用于实现 Qt 信号/槽机制、运行时类型定义、动态属性系统。 |
rcc | Resource Compiler,资源文件编译器,负责在项目构建过程中编译 .qrc 资源文件,将资源嵌入到最终的 Qt 程序里。 |
qtcreator | 集成开发环境,包含项目生成管理、代码编辑、图形界面可视化编辑、 编译生成、程序调试、上下文帮助、版本控制系统集成等众多功能, 还支持手机和嵌入式设备的程序生成部署。 |
assistant | Qt 助手,帮助文档浏览查询工具,Qt 库所有模块和开发工具的帮助文档、示例代码等都可以检索到,是 Qt 开发必备神器,也可用于自学 Qt。 |
designer | Qt 设计师,专门用于可视化编辑图形用户界面(所见即所得),生成 .ui 文件用于 Qt 项目。 |
linguist | Qt 语言家,代码里用 tr() 宏包裹的就是可翻译的字符串,开发人员可用 lupdate 命令生成项目的待翻译字符串文件 .ts,用 linguist 翻译多国语言 .ts ,翻译完成后用 lrelease 命令生成 .qm 文件,然后就可用于多国语言界面显示。 |
qmlscene | 在 Qt 4.x 里是用 qmlviewer 进行 QML 程序的原型设计和测试,Qt 5 用 qmlscene 取代了旧的 qmlviewer。新的 qmlscene 另外还支持 Qt 5 中的新特性 scenegraph 。 |
继续下一步,确定就可以了