当前位置:编程学习 > wap >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,