C++ 使用QTimer显示计时器

C++ 使用QTimer显示计时器,c++,qt,C++,Qt,我创建了一个名为aTimer的类,它继承自QTimer。我希望能够将经过的时间存储到类型为int的名为timeappeased的变量中。然后,我想让计时器在主窗口打开时自动启动,并显示其中经过的时间 我认为我使用了错误的计时器,我很困惑在Qt中应该使用哪些工具,因为有不同的处理时间的方法。我只想说,我想要一个秒表式的模块,它允许我在没有上限的情况下手动启动和停止时间(或计时器的间隔)。我该怎么办?到目前为止,尝试使用QTimer是徒劳的。此任务实际上不需要派生类。我可能会用a和a 在主窗口构造函

我创建了一个名为aTimer的类,它继承自
QTimer
。我希望能够将经过的时间存储到类型为
int
的名为
timeappeased
的变量中。然后,我想让计时器在主窗口打开时自动启动,并显示其中经过的时间


我认为我使用了错误的计时器,我很困惑在
Qt
中应该使用哪些工具,因为有不同的处理时间的方法。我只想说,我想要一个秒表式的模块,它允许我在没有上限的情况下手动启动和停止时间(或计时器的间隔)。我该怎么办?到目前为止,尝试使用
QTimer
是徒劳的。

此任务实际上不需要派生类。我可能会用a和a

在主窗口构造函数中创建它们,并根据时间更新的频率设置QTimers间隔。还将其
timeout()
信号连接到更新显示值的函数。在该函数中,您可以从QeLassedTimer获取经过的时间并更新显示

// *.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。@Vormeph如果回答了您的问题,请不要忘记接受答案(请参阅)。