1. 入口文件介绍
#include "mainwindow.h"
// 包含一个应用程序类的头文件
#include <QApplication>
// 程序入口, argc命令行变量的数量,argv命令行变量的数组
int main(int argc, char *argv[])
{
// a应用程序对象,在Qt中,应用程序对象 有且仅有一个
QApplication a(argc, argv);
// 窗口对象
MainWindow w;
// 窗口对象,默认不会显示,必须要调用show方法显示窗口
w.show();
// 让应用程序对象进入消息的死循环
return a.exec();
}
2. 项目文件介绍
# 声明项目依赖的Qt基础模块
QT += core gui
# 如果Qt主版本号大于4,则添加 widgets 模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 启用C++17标准编译代码,可以使用C++17的新特性
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
# 项目的源文件
SOURCES += \
main.cpp \
mainwindow.cpp
# 项目的头文件
HEADERS += \
mainwindow.h
2. 标准的信号槽
// 标准的信号槽,实现按钮点击事件的绑定
connect(ui->btnMax, SIGNAL(clicked()), this, SLOT(showMaximized()));
connect(ui->btnNormal, SIGNAL(clicked()), this, SLOT(showNormal()));
connect(ui->btnMin, SIGNAL(clicked()), this, SLOT(showMinimized()));
connect(ui->btnClose, SIGNAL(clicked()), this, SLOT(close()));
3. 连接信号槽的5中方式
1. 使用SIGNAL和SLOT方式连接信号槽
// 方式1:使用SIGNAL和SLOT方式连接信号槽
connect(ui -> btnMax, SIGNAL(clicked()), this, SLOT(showMaximized()));
2. 使用函数地址的方式
// 方式2:使用函数地址的方式,连接信号槽
connect(ui -> btnNormal, &QPushButton::clicked, this, &MainWindow::showNormal);
3. ui设计师页面 - 转到槽
在QPushButton右键,点击转到槽,会自动生成下面的代码
private slots:
void on_btnMin_clicked();
void MainWindow::on_btnMin_clicked()
{
this -> showMinimized();
}
4. ui设计师页面 - 信号槽编辑器
通过信号槽编辑器手动添加
5. lambda表达式
// 方式5:labmda表达式
connect(ui -> btnSetWindowTitle, &QPushButton::clicked, this, [this]() {
this -> setWindowTitle("信号槽连接的5种方式");
});