创建一个信号类,用来发送信号
#ifndef SIGNLTEST_H
#define SIGNLTEST_H
#include <QObject>
class SignlTest : public QObject
{
Q_OBJECT
public:
explicit SignlTest(QObject *parent = nullptr);
//在这里发送信号
void send(){
emit sendSignal();//发送信号
}
public:
signals:
void sendSignal();
};
#endif // SIGNLTEST_H
创建一个槽类,用来接收信号
#ifndef SOLTTEST_H
#define SOLTTEST_H
#include <QObject>
#include<qdebug.h>
class SoltTest: public QObject
{
Q_OBJECT
public slots:
//这是一个槽函数,用来接收发送的信号
void recive(){
qDebug("收到信号");
}
};
#endif // SOLTTEST_H
绑定信号和槽
SignlTest si;
SoltTest so;
//绑定发送者,发送信号,接受者,接收函数
QObject::connect(&si,&SignlTest::sendSignal,&so,&SoltTest::recive);
//使用宏定义
//QObject::connect(&si, SIGNAL(sendSignal()), &so, SLOT(recive()));
//发送
si.send();