6.信号连接信号
#include "widget.h"
#include<QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//创建teacher类和student类对象
this->t=new Teacher(this);
this->s=new Student(this);
//创建函数指针指向teacher的信号和student的槽,方便重载
void(Teacher::*teacherSignal)(QString)=&Teacher::hungry;
void(Student::*studentSlots)(QString)=&Student::treat;
//创建函数指针指向teacher的信号和student的槽
void(Teacher::*teacherSignal02)(void)=&Teacher::hungry;
void(Student::*studentSlots02)(void)=&Student::treat;
connect(t,teacherSignal,s,studentSlots);
//创建QPushButton的类对象
QPushButton*btn=new QPushButton("按钮",this);
resize(600,400);
//连接QPushButton的信号和teacher的信号
connect(btn,&QPushButton::clicked,t,teacherSignal02);
//连接teacher的信号和student的槽函数
connect(t,teacherSignal02,s,studentSlots02);
}
Widget::~Widget() {}
关于teacher和student中的信号和槽函数,就不在此展示,总而言之,
1.将QPushButton对象的点击clicked信号和teacher对象的hungry信号连接
2.将teacher对象的hungry信号和student的treat槽函数链接
运行程序,点击“按钮”后,控制台会出现“老师饿了,学生请客吃饭”