下面为两种实现方式,实现1秒单次定时器。
实现1
使用定时器QTimer的setSingleShot
接口实现单次定时器。
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), SLOT(onTimeout()));
timer->setSingleShot(true);
timer->start(1000);
实现2
使用定时器QTimer的singleShot
静态接口实现单次定时器,实现更简洁,推荐使用。
/* 信号槽 */
QTimer::singleShot(1000, this, SLOT(onTimeout()));
/* lambda */
QTimer::singleShot(1000, [](){qDebug() << "Hello world!";});