0

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

connect(timer,SIGNAL(timeout()),scene,SLOT(advance()));

动画一个圆形矩形(我自己的绘制矩形并每次都更改其坐标的类advance被调用),直到它在 a 上完成一个完整的圆QGraphicsView

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

4

1 回答 1

1

如果我正确理解了您的问题,并且您只是想测量绘制动画所花费的时间,而不是绘制动画所花费的实际时间,那么您的任务非常简单。

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

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

t = StepTime * (2 * pi) / StepAngle

如果步距角以弧度为单位,或者

t = StepTime * (360)/StepAngle

如果步距角以度为单位。

于 2012-04-08T12:45:31.100 回答