VS2019+Q6.24T学习心得

dayone

connect:4种用法

        注意点:

        (1)每个QT变量都可以接收信号,但需要指定某一变量来处理。

        (2)信号与槽都可以自定义函数,但是信号不需要实现,槽函数需要实现。

        (3)QT中定义指针需要指定指针类型,如(Beauty:*slotAnwer)(QString),(QString)是参数类型,可以有重载函数的多个不同参数。

        (4)如果 &QPushButton::clicked对应的槽函数带参,那么槽函数参数需要是bool类型,因为clicked参数为bool类型,需要一一对应。

         一个信号包含两个函数,这两个函数可以作为两个connect信号发出者,执行相对应槽函数。

        相应的一个槽函数也可使用Lambda函数来定义信号槽的回调函数,执行多个任务

        例如:

void SubWidget::mySlot()
{
    emit sigSub();
    emit sigSub(250, "你是二百五!!!");

}

    connect(&subW,&SubWidget::sigSub,this,&MainWidget::slotShowMe);
     connect(&subW,&SubWidget::sigSub, this, &MainWidget::slotSubMsg);
    //错误 SubWidget名字重复,解决办法:1.换函数名字
    //2.定义一个新指针指向不同重载信号,但需要指定该信号属于哪一类,所以指定指针类型
    // 定义该指针属于SubWidget这个类,信号返回值为void

    void (SubWidget :: * MySigSub)() = &SubWidget::sigSub;
    connect(&subW, MySigSub,this,&MainWidget::slotShowMe);
   
    void (SubWidget::* MySigPlus)(int,QString) = &SubWidget::sigSub;
    connect(&subW,MySigPlus, this, &MainWidget::slotSubMsg);


    connect(b1, &QPushButton::clicked, this, [=]()
        {
            b2->setText("Lambda表达式!!!");
            b3->hide();
        });

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值