QT_5_自定义信号和槽的重载

接上一篇,只是记录重载需要修改的部分。

这下知道上一篇的疑问是怎么回事了,哈哈。

1、teacher.h

Teacher类的hungry信号,再写一个带参的。

signals:
    void hungry();                  //hungry信号
    void hungry(QString food_name); //hungry信号的重载

2、student.h & student.cpp

Student类的treat槽函数,也要写一个带参的,参数类型和hungry里的一致,包括声明和实现两个部分。

public slots:
    void treat();                   //treat槽函数
    void treat(QString food_name);  //treat槽函数的重载
void Student::treat(QString food_name) //treat槽函数的重载
{
    qDebug() << "请客吃饭,吃:" << food_name;
}

3、connect

需要先定义两个函数指针,指向刚才重载的函数,否则编译的时候不知道是哪一个,会报错的。

    //定义函数指针,指向重载的函数
    void (Teacher:: *hungry_signal)(QString)    = &Teacher::hungry;
    void (Student:: *treat_slot)(QString)       = &Student::treat;
    connect(ls,hungry_signal,ly,treat_slot);

触发信号的时候,emit的也记得改成带参的。

	emit ls->hungry("宫保鸡丁");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值