8.lamda表达式在qt中的使用
lamda表达式
- 声明lamda表达式
1.{};总而言之,三种括号,很简洁
2.[]里写访问范围和访问方式,()里写参数,{}里写函数体的实现 - 各种访问范围和访问方式
1.=:类中所有对象均以值传递形式被访问
2.&:类中所有对象均以地址传递形式被访问
3.待补充,以上都是很基本的 - mutable关键字
访问的对象都是拷贝的,而且不可写,加上mutable关键字后就可读可写了,但仍然是
拷贝值,不会影响原来的对象。 - 返回值
1.在()写->类型
2.举例:->int{}; - 函数的调用
{}();加上()即可
lamda表达式在qt中的使用,作为槽函数
好处:话说lamda表达式的出现,本身就是为了简化那些仅仅只调用一次的函数的写法。
案例:点击按钮,关闭窗口,利用lamda表达式实现
#include "widget.h"
#include<QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
resize(600,400);
QPushButton*btn= new QPushButton("close",this);
btn->move(200,300);
//使用lamda表达式书写槽函数,实在是太方便啦
connect(btn,&QPushButton::clicked,this,
[=](){
this->close();//注意,不需要调用,只写实现即可
});
//有了lamda表达式,就可以玩出很多花样出来了!!!!!!
}
Widget::~Widget() {}

浙公网安备 33010602011771号