Qt 4/5的connect函数的区别,以及lambda表达式

1 QT5之后的connect语法

connect( 实例指针 , &类::信号函数不带括号 , 实例指针 , &类::槽函数不带括号 )

connect(ui->startTaskButton,&QPushButton::clicked,this,&MainWindow::testSlot);

注意: &类::槽函数不带括号,表示函数指针。加括号,则表示函数的返回值。

加括号的表现:编译错误。

当采用 ui设计师制作界面时,其信号与槽是自动生成的,源代码在 #include ui_xxx.h 文件中。

2 带SIGNAL和SLOT标识的(qt5之前的方法)

connect(实例指针,SIGNAL(实例信号函数带括号),this,SLOT(实例槽函数带括号));

connect(this,SIGNAL(testSignal()),this,SLOT(testSlot()));

3 使用lambda表达式

    connect(ui->CreateManuelTaskButton,&QPushButton::clicked,[=](){
        //一系列操作
    });

lambda的完整形式为

[ capture ] ( params ) opt -> ret { body; };

[] 不捕获任何变量。

[&] 捕获外部作用域中所有变量,并作为引用在函数体中使用(按引用捕获)。

[=] 捕获外部作用域中所有变量,并作为副本在函数体中使用(按值捕获)。

原文链接:https://blog.csdn.net/gongfpp/article/details/119999108

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值