Qt之QTimer
2017-05-11 15:46
239 查看
在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);
}
效果图:
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。
作者:╰☆奋斗ing❤孩子` 原文:http://blog.sina.com.cn/s/blog_a6fb6cc90101drq0.html。
虽然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);
}
效果图:
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。
作者:╰☆奋斗ing❤孩子` 原文:http://blog.sina.com.cn/s/blog_a6fb6cc90101drq0.html。
相关文章推荐
- QT 启动新线程执行QTimer
- Qt5 定时器 QTimer 的测试
- QT常用控件之QTimer,QDialog,QLabel,QLineEdit,QProgressBar,QComboBox,QPushButton,QGridLayout
- [Qt]在不开启事件循环的线程中使用QTimer
- Qt定时器QTimer的类定义与例子及代码详解
- 浅谈 QT 中的 QTimer、QTimerEvent 与 MFC 中的 OnTimer
- 某个sb使用Qt图形库时 用了很多的QTimer导致的问题
- 请教如何在QT自定义线程类中使用QTimer定时器功能
- 我的QT学习笔记-02-QTimerEvent类定时器
- Qt之QTimer
- QT学习笔记 QTimer 与信号 槽
- Qt学习笔记:QTimer和QTime
- QT::QTimerEvent
- QT延时方法整理(QTimer::singleShot,QWaitCondition,QDateTime.secsTo三种新方法)
- Qt: QTimer和QThread
- qt中如何上手使用qtimer
- Qt中的QTimer的应用
- Qt的定时器QTimer
- QT中QTimer的使用方法介绍
- qt_初学(一)_基于QTimer之计数器设计