若想在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() << "輸出";
});