目录
[1. QT SDK 的下载](#1. QT SDK 的下载)
[2. QT 配置](#2. QT 配置)
[2.1 配置过程](#2.1 配置过程)
[2.2 为什么配置](#2.2 为什么配置)
[3. 软件介绍](#3. 软件介绍)
[4. QT 新建项目](#4. QT 新建项目)
[4.1 新建文件或者项目:](#4.1 新建文件或者项目:)
[4.2 选择项目模板](#4.2 选择项目模板)
[4.3 选择文件存放路径和设置项目名称](#4.3 选择文件存放路径和设置项目名称)
[4.4 选择构建工具](#4.4 选择构建工具)
[4.5 类信息配置:](#4.5 类信息配置:)
[4.6 选择翻译文件](#4.6 选择翻译文件)
[4.7 选择构建套件](#4.7 选择构建套件)
[4.8 项目摘要](#4.8 项目摘要)
[4.9 成功构建项目编辑](#4.9 成功构建项目编辑)
[5. 项目代码解释](#5. 项目代码解释)
[.pro 文件](#.pro 文件)
1. QT SDK 的下载

清华源:Index of /qt/archive/qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
- dmg 是 mac 版本的
- run 是 Linux 版本的

安装时候的注意事项:

MinGW 是 QT SDK 中内置的 C++ 编译器,就是一个 windows 版本的 gcc/g++
主要就是把两个 MingGW 编译器选上

2. QT 配置
2.1 配置过程
给装好的 QT,配置一下环境变量
先找到 qt 中存放动态库和可执行程序的路径,如:D:\Software\qt\5.14.2\mingw73_64\bin
D:\Software\qt 是我 QT 安装的时候选择的路径。
Windows 上打开:

编辑环境变量:

可以选择在用户变量的 Path 中添加路径或者系统变量的 Path 中添加路径:

新建后将刚才的动态库路径添加进去,可以尽量往前放,不然可能会出现环境变量冲突的问题(有类似的环境变量,优先使用了别的环境了)

2.2 为什么配置
为什么要配置这个环境变量?
- 让操作系统 / QT Creator 工具,能够找到 QT SDK 中提供的 exe
- 也是运行 QT 程序的时候,能够找到对应的动态库
环境变量,也可以理解成一种简单的 "进程间通信" 机制。
相当于给别人留了张小纸条,告诉他去哪里找自己
3. 软件介绍
下好之后可以看到下面这些软件,这几个就是 QT SDK 自带的一些工具程序,也都是我们在开发中需要关注的。

Assistant 是 QT 自带的离线版本的官方文档:

Designer 是 QT 设计师,图形化的设计界面的工具,通过拖拽控件的方式来快速生成界面,后面经常使用,但是搭配 QT Creator 来使用

Linguist 是 QT 语言家,作用是对国际化进行支持,有的时候,写的程序,是要和国际接轨的。
它允许你单独创建一个语言配置文件,把界面上需要用到的各种文字,都配置到文件中,并且在文件中提前的把各种语言的翻译都配置进去。
就可以起到 "一键式切换语言" 的效果
通过简单的 api 就可以切换语言配置,就可以很容易得分实现兼容不同国家地区效果了。

QT Creator 是 QT 的集成开发工具(学习 QT 过程中主要使用的工具)

4. QT 新建项目
4.1 新建文件或者项目:

4.2 选择项目模板


| 项目模板 | 说明 |
|---|---|
| Application | Qt 应用程序,包括普通窗体程序和 QtQuick 程序 |
| Library | 可以创建动态库、静态库以及 Qt Quick 扩展插件、QtCreator 自身插件 |
| 其他项目 | 可以创建单元测试项目、Qt4 设计师自定义控件、子目录项目等 |
| Non-Qt-Project | 非 Qt 项目。可以创建纯 C 或纯 C++ 项目 |
| Import Project | 导入项目。从版本控制系统管理的软件项目导入旧的项目 |
4.3 选择文件存放路径和设置项目名称

4.4 选择构建工具
- qmake 是老牌的 QT 构建工具
- CMake 并非是 QT 专属,很多的开源项目都会使用 CMake
- Qbs 是新一代的 QT 构建工具(实际上用的人很少)
构建系统,通过 QT 写的程序,涉及到一系列的 "元编程" 技术,通过代码来生成代码。
QT 框架会在编译的时候,自动先调用一系列的生成工具,基于你自己写的代码,生成一系列的其他的 C++ 代码,最终编译的代码,也是最后生成的这些代码。

4.5 类信息配置:
使用 QT Creator 创建项目,会自动的生成一些代码出来。
生成的代码就包含一个类。
Base class 就是要选择这个自动生成的类的父类是谁。
此处生成的文件名是和类名关联的,这里的关联并非是强制的(推荐搞成一样的)
(Java 中,类名和文件名是必须要一致的)

- QMainWindows 是完整的应用程序窗口(可以包含菜单栏,工具栏,状态栏...)
- QWidget 表示一个控件(窗口上的一个具体的元素,输入框,按钮,下拉栏,单选按钮,复选按钮)
- QDialog 表示一个对话框
- QT 中内置的类都是以 Q 前缀开头的
这里可以先选择 QWidget

这个 form file 非常关键
QT 中创建图形化界面的程序,有两种方式:
- 直接通过 C++ 代码的方式创建界面
- 通过 form file,以图形化的方式来生成界面
有了这个 form file 姐可以使用 QT Designer 或者直接使用 QT Creator 来编辑这个 ui 文件,从而以图形化的方式快速方便的生成图形化界面。

4.6 选择翻译文件
此处暂时不关注,和国际化相关的

4.7 选择构建套件
这里选择一下基于哪个编译器的 QT SDK 来构建后续代码
Desktop Qt 5.14.2 MinGW 64-bit 是一个完整的桌面开发环境,包含:
- Qt 5.14.2 库文件
- MinGW 64 位编译器(g++)
- GDB 调试器
- 适用于 Windows 桌面的构建配置

4.8 项目摘要
可以选择 git 将项目纳入版本控制系统

4.9 成功构建项目

通过左下角的运行按键即可构建项目
如果报错,可能是文件路径中存在中文,建议设置全英文路径

5. 项目代码解释
main.cpp


widget.h

widget.cpp

widget.ui


.pro 文件


