热度 9
2013-6-3 15:09
778 次阅读|
0 个评论
作者:嵌入式学院武汉华嵌中心 讲师 李家凯 本文主要举例介绍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, 转载请注明出处) ------分隔线---------------------------- 上一篇:C语言中extern关键字详解 下一篇:Qt多国语言(国际化)问题小结