QT_6_信号连接信号,几种信号和槽的触发关系

1、改进:按下按钮,触发

1.1、信号连接槽

按下按钮,调用ClassIsOver函数

    QPushButton *btn = new QPushButton("下课",this);
    
    //信号和槽:单击按钮,触发下课
    connect(btn,&QPushButton::clicked,this,&Widget::ClassIsOver);
1.2、信号连接信号

按下按钮,触发老师饿的信号

    //信号连接信号,无参
    void (Teacher:: *hungry_signal_2)(void)    = &Teacher::hungry;
    void (Student:: *treat_slot_2)(void)       = &Student::treat;
    connect(ls,hungry_signal_2,ly,treat_slot_2);
    connect(btn,&QPushButton::clicked,ls,hungry_signal_2);

2、三种触发关系在这里插入图片描述

2.1、槽1→信号2→槽2
  • connect建立“信号2→槽2”的连接。
  • 写一个触发信号的函数emit ls->hungry();,调用。

最开始是这种方式,建立老师饿了学生请客的connect,然后写一个函数,函数里用emit触发老师饿了的信号。

2.2、信号1→槽1→信号2→信号1
  • connect建立“信号2→槽2”的连接。
  • 写一个触发信号的函数emit ls->hungry();
  • connect建立“信号1→槽1”的连接,按下按钮后自动触发老师饿了的信号。

上面的方式,程序一运行,就会触发老师饿了,现在是要按下按钮之后。
在上面的基础上再写一个connect,将按下按钮和触发老师饿了的函数连接。

2.3、信号1→信号2→槽2
  • connect建立“信号2→槽2”的连接。
  • connect建立“信号1→信号2”的连接。

这种方式是建立按钮按下和老师饿了的connect,然后是老师饿了和学生请客的connect.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值