返回首页

Qt4定时器使用详解

时间:2010-10-25 15:33来源:未知 作者:whhq 点击:
Qt4 定时器使用详解 作者:嵌入式学院武汉华嵌中心 讲师 李家凯 本文主要举例介绍 Qt4 中定时器的两种用法,供大家参考。 一、使用定时器的 timeout() 信号 关键代码片段如下: class
  

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()

{

     killTimerTimer_id; //停止定时器

}

 

void QtDemo2::timerEvent(QTimerEvent *event)

{

   qDebug("timerEvent happen!!! :::%d\n",event->timerId());   //定时器超时时执行这里,期中event->timerId()可以得到超时的那个Timer_id

}

 

(原文出处:http://www.embedhq.org,    转载请注明出处)

------分隔线----------------------------

  • 李老师
  • 李老师
  • 胡老师
  • 胡老师
合作伙伴
  • 武汉工程大学合作培训机构

  • 国家信息技术紧缺人才培养工程(NITE)

  • ARM公司全球授权培训中心

  • 国内首家Symbian授权培训

  • 微软全球嵌入式合作伙伴

  • Altera全球合作培训机构

在线客服
  • 客服热线:
    139-8620-3604
    159-2752-9536



  • 官方微信
  •  咨询微信二维码