Qt中的两种定时器的差异
2017-09-11 11:45
295 查看
Qt有两种定时器,一种是QObject类的定时器,另一种是QTimer类的定时器。
(1)QObject类的定时器
QObject类提供了一个基本的定时器,通过函数startTimer()来启动,通过killTimer()来结束,通过QTimerEvent来处理定时器事件。
int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer);
void killTimer(int id);
void QObject::timerEvent(QTimerEvent * event);
startTimer(int interval)启动一个时间间隔为interval毫秒的定时器,返回一个定时器标识符,如果未能启动成功,则返回0。
该定时器只能使用killTime()来杀死,killTimer(int id)通过定时器标识符来杀死定时器。
如果有多个定时器,可以通过QTimerEvent::timerId()来获取已经启动的定时器标识符。
(2)QTimer类的定时器
QTimer类定时器是QObject类定时器的扩展版或者说升级版,因为它可以提供更多的功能。比如说,它支持单次触发和多次触发。
使用QTimer类定时器的步骤:
(1)创建一个QTimer定时器实例:QTimer *timer = new QTimer(this);
(2)连接超时信号与槽:connect(timer, SIGNAL(timeout()), this, SLOT(testFunc()));
(3)启动定时器start();
(4)适时关闭定时器:stop();
(5)删除定时器实例:delete timer;
公共函数:
int interval() const 获得定时器时间间隔
bool isActive() const 获得定时器激活状态
bool isSingleShot() const 获得单次触发使能状态
int remainingTime() const 获得距离触发定时器事件的剩余时间
void setInterval(int msec) 设置定时器时间间隔
void setSingleShot(bool singleShot) 设置使能/禁用单次触发
void setTimerType(Qt::TimerType atype) 设置定时器类型
int timerId() const 获得定时器标识符
Qt::TimerType timerType() const 获得定时器类型
公共槽函数:
void start(int msec) 启动定时时间间隔为msec毫秒的定时器
void start() 启动定时器
void stop() 暂停定时器
信号:
void timeout() 超时
(1)QObject类的定时器
QObject类提供了一个基本的定时器,通过函数startTimer()来启动,通过killTimer()来结束,通过QTimerEvent来处理定时器事件。
int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer);
void killTimer(int id);
void QObject::timerEvent(QTimerEvent * event);
startTimer(int interval)启动一个时间间隔为interval毫秒的定时器,返回一个定时器标识符,如果未能启动成功,则返回0。
该定时器只能使用killTime()来杀死,killTimer(int id)通过定时器标识符来杀死定时器。
如果有多个定时器,可以通过QTimerEvent::timerId()来获取已经启动的定时器标识符。
(2)QTimer类的定时器
QTimer类定时器是QObject类定时器的扩展版或者说升级版,因为它可以提供更多的功能。比如说,它支持单次触发和多次触发。
使用QTimer类定时器的步骤:
(1)创建一个QTimer定时器实例:QTimer *timer = new QTimer(this);
(2)连接超时信号与槽:connect(timer, SIGNAL(timeout()), this, SLOT(testFunc()));
(3)启动定时器start();
(4)适时关闭定时器:stop();
(5)删除定时器实例:delete timer;
公共函数:
int interval() const 获得定时器时间间隔
bool isActive() const 获得定时器激活状态
bool isSingleShot() const 获得单次触发使能状态
int remainingTime() const 获得距离触发定时器事件的剩余时间
void setInterval(int msec) 设置定时器时间间隔
void setSingleShot(bool singleShot) 设置使能/禁用单次触发
void setTimerType(Qt::TimerType atype) 设置定时器类型
int timerId() const 获得定时器标识符
Qt::TimerType timerType() const 获得定时器类型
公共槽函数:
void start(int msec) 启动定时时间间隔为msec毫秒的定时器
void start() 启动定时器
void stop() 暂停定时器
信号:
void timeout() 超时
相关文章推荐
- Qt中定时器使用的两种方法
- Qt中定时器使用的两种方法
- Qt中定时器使用的两种方法
- QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)
- Qt中两种定时器用法
- Qt中定时器使用的两种方法
- Qt中两种定时器用法
- Qt分析:Qt中的两种定时器(可是QObject为什么要提高定时器呢,没必要啊。。。)
- Qt中两种定时器用法
- Qt中定时器使用的两种方法
- Qt中两种定时器用法
- Qt中两种定时器用法
- qt中两种定时器的用法
- Qt两种定时器案例
- Qt中定时器使用的两种方法
- Qt分析:Qt中的两种定时器
- Qt学习 之 定时器
- qt中定时器Timer的使用
- spring定时器的两种配置方式
- 两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin