QT 如何实现记录运行时间
答案:2 悬赏:70 手机版
解决时间 2021-11-12 11:02
- 提问者网友:自食苦果
- 2021-11-11 10:43
QT 如何实现记录运行时间
最佳答案
- 五星知识达人网友:爱难随人意
- 2021-11-11 12:08
用QTimer或者QBasicTimer
QTimer主要就是为计时而设计,QTimer类使用起来也很简单。举个小例子
假设构造函数有如下代码
QTimer* timer = new QTimer(this);
timer->setInterval(1000); //1000ms == 1s
connect(timer,SIGNAL(timeout()),this,SLOT(display()));
对应的槽函数display定义如下
void MainWindow::display()
{
static int count = 0;
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
}
上面的代码就已经完成了你的要求。每间隔1秒,count就会加1,也就是说label上显示的数字为当前程序运行了多少秒。
QBasicTimer属于轻量级的计时类,它不继承自QObject,所以它不能给你提供信号和槽。
QBasicTimer的用法如下:
假设你头文件有如下定义
protected:
void timerEvent(QTimerEvent *);
private:
QBasicTimer timer;
构造函数有如下调用
timer.start(1000,this);
最后重新实现的timerEvent函数如下
void MainWindow::timerEvent(QTimerEvent *event)
{
static int count = 0;
if (event->timerId() == timer.timerId()) {
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
} else {
QWidget::timerEvent(event);
}
}
上面两种方式都可以实现你的要求,相比之下QBasicTimer更适合在嵌入式设备上进行使用。
QTimer主要就是为计时而设计,QTimer类使用起来也很简单。举个小例子
假设构造函数有如下代码
QTimer* timer = new QTimer(this);
timer->setInterval(1000); //1000ms == 1s
connect(timer,SIGNAL(timeout()),this,SLOT(display()));
对应的槽函数display定义如下
void MainWindow::display()
{
static int count = 0;
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
}
上面的代码就已经完成了你的要求。每间隔1秒,count就会加1,也就是说label上显示的数字为当前程序运行了多少秒。
QBasicTimer属于轻量级的计时类,它不继承自QObject,所以它不能给你提供信号和槽。
QBasicTimer的用法如下:
假设你头文件有如下定义
protected:
void timerEvent(QTimerEvent *);
private:
QBasicTimer timer;
构造函数有如下调用
timer.start(1000,this);
最后重新实现的timerEvent函数如下
void MainWindow::timerEvent(QTimerEvent *event)
{
static int count = 0;
if (event->timerId() == timer.timerId()) {
//增加时间计数
count++;
//显示当前的时间计数
label->setText(QString::number(count));
} else {
QWidget::timerEvent(event);
}
}
上面两种方式都可以实现你的要求,相比之下QBasicTimer更适合在嵌入式设备上进行使用。
全部回答
- 1楼网友:动情书生
- 2021-11-11 13:33
如果精度在10ms以上可以直接用QTime类的start()函数和elapsed () 函数,然后再用QTimer更新label就可以了,用repaint()更新比用update()更新要更实时些。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯