C++ 计算动画时间Qt

C++ 计算动画时间Qt,c++,qt,animation,C++,Qt,Animation,首先,我对Qt相当陌生。我确实在寻找答案,但没有找到与我的问题类似的答案。我使用的计时器每50毫秒超时一次 connect(timer,SIGNAL(timeout()),scene,SLOT(advance())); 设置一个旋转矩形的动画(我自己的类,它在每次调用advance时绘制矩形并更改其坐标),直到它在QGraphicsView上画一整圈为止 有没有办法测量动画完成所需的时间?基本上,我按下按钮,动画开始,矩形完成圆,我需要输出完成所需的时间。我知道我可以用QTime来计算时间,但

首先,我对Qt相当陌生。我确实在寻找答案,但没有找到与我的问题类似的答案。我使用的计时器每50毫秒超时一次

connect(timer,SIGNAL(timeout()),scene,SLOT(advance()));
设置一个旋转矩形的动画(我自己的类,它在每次调用
advance
时绘制矩形并更改其坐标),直到它在
QGraphicsView
上画一整圈为止


有没有办法测量动画完成所需的时间?基本上,我按下按钮,动画开始,矩形完成圆,我需要输出完成所需的时间。我知道我可以用QTime来计算时间,但我不知道该放在哪里,因为它使用的是信号槽机制和计时器。谢谢。

如果我正确理解了你的问题,而你只是想测量你绘制动画所花费的时间,而不是绘制动画所花费的实际时间,那么你的任务就相当简单了

如果计时器每50毫秒超时一次,那么如果您计算绘制动画所需的步骤数,并将其乘以50毫秒,您就有了完整的时间

如果您的advance()函数每次步进一个固定的弧度,那么您不需要计算任何东西。你事先知道要花多少时间。它可以很容易地计算如下:

t = StepTime * (2 * pi) / StepAngle
如果步进角以弧度为单位,或者

t = StepTime * (360)/StepAngle

如果步进角度以度为单位。

谢谢您的回复!我确实需要实际的时间,因为我正试图比较它在不同PC上的性能(只是我被要求做作业的一部分)。据我所知,由于我选择了实现动画的方法,时间将非常接近(我猜在我的案例中有更好的方法,但这似乎是最简单的),但我甚至不确定如何获得这些时间。