QT 中使用定时器,有两种方式:
- 定时器类:
QTimer
- 定时器事件:
QEvent::Timer
,对应的子类是QTimerEvent
简单讲一下两种用法:
QTimer:
QTimer 需要创建QTimer对象
然后需要给定时器绑定 定时器超时的槽函数,也就是时间到了,该做什么
一般用按钮控制定时器,所以跟按钮关联的槽函数一般里面有start,stop就是控制定时器的
这样通过按钮点击之后,调用里面Qtimer的start,因为外面绑定了定时器超时槽函数,所以
定时器到时间了就会调用超时槽函数,完成业务逻辑
QTimerEvent:
需要重写void QObject::timerEvent(QTimerEvent *event)
当定时时间到的时候会自动调用timerEvent
用timerId可以获取哪个定时器的id
startTimer()可以设置定时器时间间隔 ms
killTimer停止定时器
对于 QTimerEvent不用重写定时器超时函数并且再手动绑定,QTimerEvent他会自动调用timerEvent,该函数将自动在使用startTimer函数启动的定时器到期时被调用,所以只需要重写这个就行
下面举一个案例:看看实际项目中怎么用
这有一个定时器任务的页面,无ui的,手撕代码去写