具有 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();
  } );