一、程序
1.
connect(b1,&QPushButton::clicked,
[]()
{
qDebug()<<"hello";
}
);
点击按钮式,就会直接debug输出。
2.
connect(b1,&QPushButton::clicked,
[b1]()
{
b1->setText("123");
qDebug()<<"hello";
}
);
同时[]可以用来传参,如果传递多个参数用逗号隔开。
3.
connect(b1,&QPushButton::clicked,
[=]()
{
b1->setText("123");
qDebug()<<"hello";
}
);
这里写=,代表把所有的外部变量和类成员以值传递的方式进行传参。
4.
int a = 10;
connect(b1,&QPushButton::clicked,
[=]() mutable
{
b1->setText("123");
qDebug()<<"hello";
a=100;
}
);
因为传进来的参数默认是只读的,所以加上mutable 就可以读参数进行读写,如果不加a=100就会报错。
5.
int a = 10;
connect(b1,&QPushButton::clicked,
[&]()
{
qDebug()<<a;
}
);
[&]代表把所有外部变量,传递进来,但是上述代码会出现一个问题,打印出的a是一个随机数。所以这种情况尽量用=符号。
6.
connect(b1,&QPushButton::clicked,
[=](bool click)
{
qDebug()<<click;
}
);
()中是参数,clicked()方法是有参数的,是一个bool量,点击按钮就会变成false。使用这种方法可以实现信号传参。