在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);
}