QElapsedTimer提供了一种快捷的计算流逝时间的方法。它通常被用来计算两个事件或操作之间过去了多久。并且,该类的方法非常类似于我们之前讲过的QTime类的三个计时函数,所以,我们可以很快速的在使用这两个类的代码之间进行移植。但是,不像QTime,QElapsedTimer会尽可能的使用某种单调时钟。这也就意味着,没办法将QElapsedTimer对象转换成人类可读的时间格式。
这个类的典型使用方法就是测量一个耗时操作花了多少时间。最简单的例子如下:
QElapsedTimer timer;
timer.start();
slowOperation1();
qDebug() << "The slow operation took" << timer.elapsed() << "milliseconds";
在这个例子中,我们下定义了一个QElapsedTimer的对象,然后调用它的start() 方法开始计时,完成一个耗时操作后,再调用它的elapsed() 方法,得到耗时操作所花费的具体时间,以毫秒计算。
我们也可以在一个耗时操作完成后,通过elapsed() 函数的返回值来决定下一个耗时操作可以运行的时间。这对于需要在一定的时间周期内完成几个耗时操作来说是至关重要的。比如下面代码所展现的案例:
void executeSlowOperations(int timeout)
{
QElapsedTimer timer;
timer.start();
slowOperation1();
int remainingTime