具有 Lambda 功能的 Singleshot Timer 作為插槽
如果需要一個單一的計時器,那麼在宣告計時器的地方將插槽作為 lambda 函式安靜是很方便的:
QTimer::singleShot(1000, []() { /*Code here*/ } );
由於這個 Bug(QTBUG-26406) ,這種方式僅在 Qt5.4 之後才有可能。
在早期的 Qt5 版本中,必須使用更多的鍋爐板程式碼:
QTimer *timer = new QTimer(this);
timer->setSingleShot(true);
connect(timer, &QTimer::timeout, [=]() {
/*Code here*/
timer->deleteLater();
} );