我正在寻找最简单的方法来计算和显示Qt
中函数的执行时间。结果应为格式为string
的{{1}} / QString
。
我知道我可以使用mm:ss
获得int
毫秒,但是有内置函数可以进行格式化吗?
答案 0 :(得分:2)
如果您有经过的时间(以毫秒为单位ms
),则可以通过以下方式打印mm:ss
格式的时间:
QString out = QString("%1:%2").arg( ms / 60000 , 2, 10, QChar('0'))
.arg((ms % 60000) / 1000, 2, 10, QChar('0'));
答案 1 :(得分:1)
我在一个应用程序中遇到了同样的问题。只需一点技巧,就可以在toString
中使用QTime
方法。需要考虑的是,toString
还照顾语言环境并允许使用不同的时间格式。这使得它实现起来很简单。
以下完整的代码应该足以解释基本思想:
#include <QApplication>
#include <QTime>
#include <QTimer>
#include <QEventLoop>
#include <QDebug>
int main(int argc, char** args) {
QApplication app(argc, args);
QTime x;
x.start();
QTimer wait;
QEventLoop e;
QTimer::singleShot(500, &e, &QEventLoop::quit);
e.exec();
QTime y(0, 0);
qDebug() << x.elapsed();
y=y.addMSecs(x.elapsed());
qDebug() << y.toString("mm:ss.zzz");
}