信号连接信号

继续:自定义的信号和槽发生重载的解决-CSDN博客

目录

1.引入

1.1添加一个QPushButton的头文件

1.2创建一个“下课”的按钮

1.3绑定连接

1.4运行结果

2.实现

说明:

3.断开信号


1.引入

实现:点击一个下课的按钮,再触发下课

1.1添加一个QPushButton的头文件

1.2创建一个“下课”的按钮

 //点击一个下课的按钮,再触发下课
 QPushButton * btn=new QPushButton("下课",this);

1.3绑定连接

因为添加了按钮,窗口可能会缩小,所以我们可以手动设置窗口大小

1.4运行结果

点击一次就会出现

2.实现

思考:可不可以不要下课这个函数,而是直接用信号连接信号呢

尝试用无参的hungry和treat,用函数指针来代替他们的地址

void(Teacher::*teacherSignal2)(void)=&Teacher::hungry;
void(Student::*studentSlot2)(void)=&Student::treat;
connect(zt,teacherSignal2,st,studentSlot2);

再写一个信号连接信号的

 //信号连接信号
 connect(btn,&QPushButton::clicked,zt,teacherSignal2);

运行结果

说明:

connect(btn,&QPushButton::clicked,zt,teacherSignal2);这一行代码是将按钮点击信号和老师饿了信号连接起来,而connect(zt,teacherSignal2,st,studentSlot2);这一行代码是将老师饿了的信号和学生请客这个槽函数连接起来

3.断开信号

使用disconnect()函数,参数和connect中的参数一样,断开哪一部分就填哪一部分的连接参数。

再点击就不会出现请老师吃饭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值