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() << "輸出";
 });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章