QTimer类提供了重复和单次触发信号的定时器。
QTimer类为定时器提供了一个高级别的编程接口。很容易使用:

  • 首先,创建一个QTimer,连接timeout()信号到适当的槽函数,并调用start(),
  • 然后在恒定的时间间隔会发射timeout()信号。
  • 当QTimer的父对象被销毁时,它也会被自动销毁。

示例1:

QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), [=](){
  //to do...
});
timer->start(1000);

start()之后,每秒执行todo

示例2:

通过静态函数QTimer::singleShot()让定时器只执行一次:

QTimer::singleShot(200, [=](){
//todo ...
});

也可以通过设置setSingleShot(true)来实现。

QTimer *timer = new QTimer(this);
timer ->setSingleShot(true);

connect(timer, SIGNAL(timeout()), [=](){
  //to do...
});
timer->start(1000);