一、信号和槽
信号和槽函数都可以自己定义
- 信号在头文件中声明即可,不需要实现
- 槽函数需要声明也需要实现
发送者和接受者为指针形式
二、信号槽函数为指针形式
connect(发送者,&QMainWindow::信号,接受者,&QMianWindow::槽函数)
有两个凹槽的为槽函数
有两条弧线像信号发射的为信号
例:
QPushButton * startBtn = new QPushButton("开始游戏",this);
connect(startBtn,&QPushButton::clicked,this,&GameWindow::startGame);
三、信号槽函数为SIGNAL、SLOT形式
connect(发送者,SIGNAL(信号),接受者,SLOT(槽函数))
例:
QPushButton * startBtn = new QPushButton("开始游戏",this);
connect(startBtn,SIGNAL(clicked()),this,SLOT(startGame()));
四、槽函数为lamda表达式([=](){}
)形式
信号需要以指针形式,不能用SIGNAL
connect(startBtn,&QPushButton::clicked,[=](){
this->close(); // 写槽函数需要实现的内容
});