简单理解信号和槽
学linux进程时有了解到进程间通信,类比于此,信号和槽是对象之间进行通信,各种进程间通信有不同的方式和机制,同样信号和槽也有其语法要求
语法规则:
- 信号和槽的参数要一致
- 槽函数可以带有缺省参数(默认参数)
- 信号函数的参数个数可以多于槽函数,多余的参数被忽略
信号和槽链接的应用:
- 一个信号可以被连接到多个槽(一对多)
- 多个信号也可以连接到同一个槽(多对一)
- 两个信号可以直接连接(信号级联),例如是滑动条和选值框的信号同步
信号和槽的使用
简单实现两个功能:
- 通过按钮发送信号,标签作为槽接收信号,清除标签
- 通过按钮发送信号,应用程序对象作为槽接收信号,退出应用程序
要注意:发送信号和槽接收信号写错了,一般不会报错
#include <QApplication>
#include <QMainWindow>
#include <QLabel>
#include <QPushButton>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMainWindow parent;
parent.resize(400, 400);
QLabel label("Label", &parent);
label.move(50, 50);
QPushButton button1