Qt中父类向子类发送信号

本文介绍了如何在C++中通过信号和槽机制实现父类(Widget)与子类(myLabel)间成员变量的同步。当Widget的isFull变量改变时,会触发一个信号,该信号被连接到myLabel的公共函数,从而更新myLabel的isFull变量。这种方法确保了数据的一致性,并遵循了面向对象的设计原则。
摘要由CSDN通过智能技术生成

前言
在mylabel.h与widget.h中均有一个private型的变量isFull
想要在widget当前屏幕状态(是否全屏)改变后同步改变mylabel

思路:
C++是面向对象语言。为了类中成员变量的安全,一般使用定义接口的方式改变类中成员变量的值。

将当前的屏幕状态(是否全屏)发送给myLable,否则只能进行单方向的通信(双击需要点击两次)

因此可以

  1. 在widget.cpp中将当前改变后的信号发送出去
emit SignalReturnFullShow(isFull);
  1. 在myLabel.cpp中定义共有函数
void myLabel::setIsFull(bool ret)
{
    isFull=ret;
}
  1. 在widget.cpp初始化函数中绑定槽
//将当前窗口的状态信号返回myLabel
    connect(this,SIGNAL(SignalReturnFullShow(bool)),
    this,SLOT(doProcessReturnFullShow(bool)));

注意:第一个参数发送者是当前窗口

  1. 实现处理槽函数
void Widget::doProcessReturnFullShow(bool ret)
{
    //在子窗体中定义一个共有函数,设置子窗体中isFull的值
    lbl->setIsFull(ret);
    //lbl为myLabel的对象
}

此时便可实现父类向子类的函数传递

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

colorful_stars

您是我见过全宇宙最可爱的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值