QTimer的使用方法
auto timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(xxxx));
timer->start(1000);//设置计时器事件间隔,单位为毫秒
效果:
每1000ms发射一次信号timeout(),也就执行一次槽函数xxxx;
如果只想单次执行计时器,例如延时0.5s在执行某个函数
可以这样使用
QTimer::singleShot(500,this,SLOT(xxxx));
三个参数分别是延时发射时间(单位ms),信号接收者,信号接收者的槽函数;
timerEvent()的使用方法
QObject包含该事件
1.定义成员变量 int timerID; int timerID2;
2.可以在构造函数中定义一个内部定时器 timeID = startTimer(1000);
3.生成更多的内部定时timeID2 = startTimer(2000);
4.重写timerEvent(QTimerEvent* event)
通过event->timerId() == timerID来判断是哪个定时器产生的事件