加载中…
个人资料
一去二三里
一去二三里
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,839,904
  • 关注人气:909
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Qt之QTimer

(2013-06-05 13:58:41)
分类: Qt

    在Qt开发界面的时候,非常多的时候都得使用定时器,定时器具体可以干什么呢?比如:控制时钟、定时改变样式、改变进度等。。。说到这里,经常使用QQ,而不同的时段都会显示不同的背景,我认为如果用Qt实现的话,就得使用QTimer定时的获取时间,判断当前时间为morning、noon、afternoon、night来改变当前的背景。。。

    虽然QTimer简单易用,但是比较耗内存,所以在不必要的时候就必须终止它。。。

   

QTimer构造:

  QTimer *timer = new QTimer();

QTimer设置超时并启动:

  timer->setInterval(1000);
  timer->start();

或:timer->start(1000);

 

QTimer改变定时间隔为msec毫秒

  timer->changeInterval(msec);

如果这个定时器信号是运行的,它将会被停止并且重新开始,否则它将会被开始。

 

QTimer是否则正在运行

  timer->isActive()

如果定时器正在运行,返回真,否则返回假。

 

QTimer停止

  timer->stop();

 

当达到超时时间,则发射信号,执行指定的槽函数

  connect(timer, SIGNAL(timeout()), this, SLOT(myTimeout()));

 

    以下是利用QTimer来控制一个进度条,超时时间为1000毫秒(1秒),当达到超时时间时,进度条增加1%,当进度条为100%时,停止Qtimer。

 

MyWidget::MyWidget(QWidget *parent) :
 QWidget(parent)
{
  this->setFixedSize(400, 300);
  progress_value = 0;

  timer = new QTimer();
  timer->setInterval(1000);
  timer->start();

  progress_bar = new QProgressBar(this);
  progress_bar->setGeometry(50, 50, 150, 20);
  progress_bar->setValue(0);

  connect(timer, SIGNAL(timeout()), this, SLOT(changeValue()));
}

void MyWidget::changeValue()
{
  progress_value++;
  if(progress_value > 100)
  {
    timer->stop();
  }
  progress_bar->setValue(progress_value);
}

 

效果图:

Qt之QTimer


注:
    技术在于交流、沟通,转载请注明出处并保持作品的完整性。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有