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