Qt5在QObject::connect()添加了几种新用法,其中一种是lambda表达式(也称为:匿名函数),其中C++的lambda表达式原理解说可以参考博主这篇博客:https://blog.csdn.net/naibozhuan3744/article/details/96353035
一、下面是对Qt中在QObject::connect()中的lambda表达式常用用法
QString str("I am a string!");
device=str;
connect(ui->pushButton,&QPushButton::clicked,[&](bool){qDebug()<<"device=="<<device;});
表达式详解
a1 第一个参数含义
第一个参数ui->pushButton:表示对象;
a2 第二个参数含义
第二个参数&QPushButton::clicked:表示对象包含的信号(该信号隐藏参数,实际上在槽函数仍然可以调用信号参数列表);
a3 第三个参数含义
第三个参数:[&](bool){qDebug()<<"device=="<<device};
该connect只有三个参数,在三个参数情况下,默认第三个槽函数的对象是本类this,也就是第三个参数this被省