Qt学习笔记-Lambda表达式

Qt学习笔记-Lambda表达式

简单介绍

  • = 表示函数体可以使用lambda所在作用范围内所有可见的局部变量,并且是值传递方式
  • & 函数体可以使用Lambda所在作用范围内的所有可见的局部变量,并且是引用传递方式
  • this 函数体可以使用Lambda所在类中的成员变量
  • a,表示a按照值传递 按照值传递,函数体不可以修改传递进来的a的拷贝,因为默认情况下函数是const的,要修改传递进来的a的拷贝可以添加mutable修饰符
  • &a 表示a按照引用进行传递
    [=](){
        btn->setText("asdsd");
    }();// lambda表达式

    [btn](){
      btn->setText("diuscghfvijdsh");
    }();

简单案例-点击按钮,关闭窗口

    // 利用lambda 表达式 实现点击按钮 关闭窗口
    QPushButton *btn2 = new QPushButton;
    btn2->setText("关闭");
    btn2->move(100,0);
    btn2->setParent(this);


    // 使用Lambda表达式 鼠标点击信号  然后关闭窗口
    connect(btn2,&QPushButton::clicked,this,[=](){
       this->close();
    });

你可能感兴趣的:(C++,#,Qt,qt,学习,笔记)