1.1 新建一个项目
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad4ec6e08a04452b96c1b21f08541cfc.png)
添加项目名称:
![在这里插入图片描述](https://img-blog.csdnimg.cn/e760c9bfba924f4dbc10e4b59ea86382.png)
选择Qwidget类,暂时不选择Generate form那个
![在这里插入图片描述](https://img-blog.csdnimg.cn/8a0803d399674695a916bdde980e056c.png)
补充(这里介绍了一下widget、mainWindow、dialog三种类的关系):
![在这里插入图片描述](https://img-blog.csdnimg.cn/ac6a9799542d4b8b93210df49bf8f945.png)
编译器用QT自带的:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c4e740e5db004b63af172d3bf803690a.png)
创建完毕:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a5ee082d9ba643e59602b431e686ce05.png)
1.2 项目介绍
1.2.1 .pro文件
(1)打开项目文件夹
点击.pro文件,右键,选择”在Explorer中显示“,可以打开项目文件夹:
在之后的时间,若想再次编辑该项目,可以直接双击该.pro文件,自动打开QT编辑界面。
(2)这个.pro文件用 # 注释
(3)为QT添加模块
core——QT核心模块
gui——图形界面模块
![在这里插入图片描述](https://img-blog.csdnimg.cn/df87a9aa9d644e24ae3383138cc8419d.png)
因为在4.0版本之后,widgets模块就单独分离出来了,所以要单独添加。
(4)QT支持c++11新特性
![在这里插入图片描述](https://img-blog.csdnimg.cn/0e2c51e14c5644ce9a4db7d934db4b61.png)
(5)定义添加选项
![在这里插入图片描述](https://img-blog.csdnimg.cn/86c3a7cd4b1a48198a198b19848afb8f.png)
1.2.2 main.cpp 程序入口
(1)头文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/27052ab921a94e07bb674cb58150b5f5.png)
(2)定义应用程序对象
![在这里插入图片描述](https://img-blog.csdnimg.cn/52476fbf17544a8881cde0bdeb5bdb85.png)
(3)定义空窗口对象
![在这里插入图片描述](https://img-blog.csdnimg.cn/38d86ec7415746afafca23b861fe8b04.png)
(4)调用空窗口对象的子函数 show( )
show()函数是在程序运行后,用来显示出界面的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4b9f1e59032a4355b4f617cdc9b8dec8.png)
(5)调用应用程序对象的消息循环函数 exec( )
exec( )这个函数使得程序循环,否则在运行时,就只会一闪而过
![在这里插入图片描述](https://img-blog.csdnimg.cn/20d3029de2f249e39efa043d2e9525b0.png)
(6)完整程序
main.cpp
#include "Widget.h"
#include <QApplication> // 应用程序头文件
int main(int argc, char *argv[])
{
QApplication a(argc, argv); // 定义应用程序对象
Widget w; // 定义空窗口对象
w.show(); // 调用空窗口子函数 显示窗口(不调用这个函数,程序在运行时就没有窗口界面)
return a.exec(); // 调用应用程序对象 消息循环函数(没有这个函数,程序只会一闪而过)
}
1.2.3 Widget.h 头文件
(1)头文件卫士
![在这里插入图片描述](https://img-blog.csdnimg.cn/b017f11232a546cb8953f46193a5ab86.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f45c27d9f4344ce585b177a0d428a48b.png)
(2)包含QWidget头文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/4495d8c25f9b4581936d89e4f2a769a5.png)
(3)继承QWidget,产生新的类Widget
![在这里插入图片描述](https://img-blog.csdnimg.cn/061c05240310447aafdb2aac8bc5aa61.png)
(4)完整代码
Widget.h
#ifndef WIDGET_H
#define WIDGET_H // 头文件卫士
#include <QWidget> // 包含QT空窗口头文件
class Widget : public QWidget // 继承QWidget,定义一个新的类Widget
{
Q_OBJECT // 支持信号 和 槽
public:
Widget(QWidget *parent = nullptr); // 构造函数
~Widget(); // 析构函数
};
#endif // WIDGET_H
1.2.4 Widget.cpp源文件
(1)构造函数和析构函数的实现
![在这里插入图片描述](https://img-blog.csdnimg.cn/e45ff6f8ff40405390642ff0dbd084a4.png)
(2)设置窗口标题:setWindowTitle( )
![在这里插入图片描述](https://img-blog.csdnimg.cn/9915ba6ebfdf4cc68bd137760d752892.png)
(3)设置窗口大小:resize( )
![在这里插入图片描述](https://img-blog.csdnimg.cn/911c5fba2fad471990b6f909bf38f498.png)
(4)固定窗口大小:setFixedSize( )
![在这里插入图片描述](https://img-blog.csdnimg.cn/09c38e40548e4f1e889815042ba8e873.png)
(5)完整代码
Widget.cpp
#include "Widget.h"
// 构造函数实现
Widget::Widget(QWidget *parent)
: QWidget(parent) // 初始化列表
{
// 设置窗口标题
this->setWindowTitle("hello QT");
// 设置窗口大小:宽400,高800
this->resize(400, 800);
// 固定窗口大小:宽150,200 (此时不能拖拽了放大缩小窗口了)
this->setFixedSize(150, 200);
}
// 析构函数实现
Widget::~Widget()
{
}
1.3 快捷键
(1)注释和解除注释
注释和解除注释:ctrl + /
(2)运行程序
运行:ctrl + r
(3)构建
构建:ctrl + b
(4)转到定义/声明切换
转到定义/声明切换:F2
(5)返回
返回:Atl + <——
(6)前进
前进:Atl + ——>