Qt4定时器使用详解
作者:嵌入式学院武汉华嵌中心 讲师 李家凯本文主要举例介绍Qt4中定时器的两种用法,供大家参考。
一、使用定时器的timeout()信号
关键代码片段如下:
class QtDemo
{
public:
QTimer *timer; //定时器类指针
public slots:
void timeoutslot();//定时器超时时触发的槽函数
void startTimer();
void stopTimer();
};
QtDemo::QtDemo()
{
connect(pushButton1,SIGNAL(clicked()),this,SLOT(startTimer()));// 点击pushButton1启动定时器
connect(pushButton2,SIGNAL(clicked()),this,SLOT(stopTimer()));// 点击pushButton2停止定时器
timer=new QTimer(this); //创建定时器
connect(timer,SIGNAL(timeout()),this,SLOT(timeoutslot()));//timeoutslot()为自定义槽,定时器timeout时触发该槽
}
void QtDemo::startTimer()
{
timer->start(1000); //启动定时器,超时为1秒
}
void QtDemo::stopTimer()
{
timer->stop(); //停止定时器
}
void QtDemo::timeoutslot()//定时器超时时触发的槽函数
{
//在这里写定时器超时的要做的事情
}
二、重载timerEvent(QTimerEvent *)函数
关键代码片段如下:
class QtDemo2
{
public:
int Timer_id; //定时器ID
public slots:
void mystartTimer();
void mystopTimer();
};
QtDemo2::QtDemo2()
{
connect(pushButton1,SIGNAL(clicked()),this,SLOT(mystartTimer()));// 点击pushButton1启动定时器
connect(pushButton2,SIGNAL(clicked()),this,SLOT(mystopTimer()));// 点击pushButton2停止定时器
}
void QtDemo2::mystartTimer()
{
Timer_id = startTimer(1000); //启动定时器,超时为1秒
}
void QtDemo2::mystopTimer()
{
killTimer(Timer_id); //停止定时器
}
void QtDemo2::timerEvent(QTimerEvent *event)
{
qDebug("timerEvent happen!!! :::%d\n",event->timerId()); //定时器超时时执行这里,期中event->timerId()可以得到超时的那个Timer_id
}
更多技术文章敬请关注:武汉华嵌-嵌入式培训专家,国内领先的嵌入式服务机构,
http://www.embedhq.org --------------------编程问答-------------------- 谢谢分享 --------------------编程问答-------------------- mark
补充:移动开发 , Qt