您并不需要派生类来完成此任务。我可能会使用QTimer
和QElapsedTimer
。
在您的主窗口构造函数中创建它们,并根据应该更新时间的频率设置QTimers间隔。同时将其timeout()
信号连接到更新显示值的功能。在此功能中,您可以从QElapsedTimer中获取已用时间并更新显示。
// *.h
QTimer* timer;
QElapsedTimer *eltimer;
// *.cpp
constructor(){
this->timer = new QTimer(this);
this->timer->setInterval(1000);
connect(this->timer, SIGNAL(timeout()), this, SLOT(update_ui()));
this->timer->start();
this->eltimer = new QElapsedTimer(this);
this->eltimer->start();
}
SLOT update_ui(){
qint64 msecs_elapsed = this->eltimer->elapsed();
// Insert value into ui object
}
当然,你可以创建一些按钮start()
和stop()
的QTimer
谢谢!它工作,除了我不想要毫秒,所以我把变量除以1000. – Poriferous 2014-10-29 17:19:16
@Vormeph如果它回答你的问题,别忘了接受答案(参见http://stackoverflow.com/help/someone-answers) 。 – 2014-10-29 20:01:03