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);