Qt在connect中使用lambda表达式(最简单)

若想在QT中使用lambda表达式需要在项目文件中的 .pro 中加入 CONFIG += c++11

例子:当点击按钮时,打印一个“输出”.

需要包含按钮类和打印调试类。

 #include <QPushButton>
 #include <QDebug>
 QPushButton *but1 = new QPushButton(this);
 but1->setText("lamda表达式");
 // 将but1直接写在括号中时,为以值传递的方式将but1这个指针传递进匿名函数里
 // = ,表示将表达式外所有变量以值传递的方式传进匿名函数里,传进来为常量
 // & ,表示将表达式外所有变量以引用传递的方式进入匿名函数里,传进动态指针会引发出错,内存释放的问题。
 //mutable关键字,将传进去的值,改为普通变量,不再是常量了
 connect(but1,&QPushButton::clicked,[=]()mutable{
     qDebug() << "输出";
 });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章