QT中使用信号和槽的机制完成对象之间的协同操作。
信号可以理解某一动作或者时间的发生(触发),槽的话,也可以理解为另一个动作,原则上这两者都是函数
举个例子:
门铃响了(发射信号),去开门(执行槽)
水开了(发射信号),关掉火(执行槽)
我们通过一个简单的实例,来进行理解。首先自定义一个槽,完成某个动作(槽一般使用slots关键字进行修饰);设置一个按钮,将按钮按下作为信号。
接下来,我们看一下具体代码
先创建一个工程,各代码如下
main.cpp
#include "widget.h"
#include <QtWidgets>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.setWindowTitle(QObject::tr("I am widget"));
w.resize(300,200);
w.show();
return a.exec();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QDialog>
Widget::Widget(QWidget *parent) :
QWidget(parent),