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槽函数链接
运行程序,点击“按钮”后,控制台会出现“老师饿了,学生请客吃饭”

posted @ 2025-04-19 19:16  噫~该死的碳酸饮料  阅读(3)  评论(0)    收藏  举报