逻辑:下课后,老师饿了,学生请吃饭。
使用connect函数连接自定义的信号和槽函数。
创建类
信号
#ifndef TEACHER_H
#define TEACHER_H#include <QObject>class teacher : public QObject
{Q_OBJECT
public:explicit teacher(QObject *parent = nullptr);signals://自定义信号//返回值是void,只需要声明,不需要实现//可以有参数,可以重载void hungery();
};#endif // TEACHER_H
槽函数
#ifndef STUDENT_H
#define STUDENT_H#include <QObject>class student : public QObject
{Q_OBJECT
public:explicit student(QObject *parent = nullptr);signals:public slots://可以写到public,也可以写到全局下//返回值是void,需要声明,需要实现//可以有参数,可以重载void treat();
};#endif // STUDENT_H
void student::treat()
{qDebug()<<"请老师吃饭";
}
触发
声明 void classover();
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//创建对象this->zt = new teacher(this);this->st = new student(this);//连接connect(zt,&teacher::hungery,st,&student::treat);classover();}
void MainWindow::classover()
{//emit 触发信号emit zt->hungery();
}
结果