逻辑:下课后,老师饿了,学生请吃饭。
使用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();
}
结果
文章来源:https://www.toymoban.com/news/detail-516495.html
文章来源地址https://www.toymoban.com/news/detail-516495.html
到了这里,关于QT学习笔记4--自定义信号的槽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!