Qt中父类向子类发送信号

前言
在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的对象
}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

colorful_stars

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

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

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

打赏作者

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

抵扣说明:

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

余额充值