qt5视频学习笔记3(带参数的信号、Lamda表达式)

1.信号可以重载

void(subWidget::*testSignal)(int,QString)=&subWidget::mySignal;

connect(&w,testSignal,this,&MainWidget::dealSlot);

2.类的成员函数有个特殊指针,this

谁(哪个对象)调用这个成员函数,this就指向这个对象

this可以操作类型任意成员

3.函数指针

void fun(int)

{

}

void (*p)(int)=fun;

4.Lambda表达式  匿名函数对象

  C++11增加的新特性,项目文件:CONFIG +=C++11;

Qt配合信号一起使用,非常方便

列如:1.QPushButton*b4=newQPushButton(this);

    b4->setText("Lambda表达式");
    b4->move(150,150);
    connect(b4,&QPushButton::released,
            []()      /*[]表示传进来的参数  [=]把外部所有局部变量、类中所有成员以值传递方式    ():函数参数
           {
               qDebug()<<"11111";
            }
            );
2. QPushButton *b4=new QPushButton(this);
    b4->setText("Lambda表达式");
    b4->move(150,150);
     int a=10,b=100;
    connect(b4,&QPushButton::released,
            [=]()  mutable   //mutable:变量可修改
            //[this]:类中所有成员以值传递方式 不包括类中成员   [&]:把外部所有
//局部变量,引用符号
            {
   b4->setText("123");
   a=11;
     qDebug()<<"11111";
            }
            );
5.信号属于谁,它就谁发出    按钮只是触发软件中断,调函数
 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值