我遇到了一个问题,因为我无法通过覆盖setPos方法来创建一个简单的setPos动画:
def setPos(self, pos):
print('from %s to %s' % (self.scenePos(), pos))
timer = QTimeLine(5000)
timer.setFrameRange(0, 100)
animation = QGraphicsItemAnimation()
animation.setItem(self)
animation.setTimeLine(timer)
x_step = (pos - self.scenePos()).x() / 200
y_step = (pos - self.scenePos()).y() / 200
for i in range(200):
animation.setPosAt(i/200, self.scenePos() + QPointF(i * x_step, i * y_step))
timer.start()
提前致谢,b52
答案 0 :(得分:1)
@robe:QPropertyAnimation要求声明类为QObject,我相信QGraphicsItem不是。
答案 1 :(得分:0)
为什么不使用 QPropertyAnimation ?使用此类,您可以为对象的任何属性创建动画。
QPropertyAnimation * animationPos = new QPropertyAnimation(Object, propertyName);
animationPos->setDuration(miliseconds);
animationPos->setStarValue(startValueForProperty);
animationsPos->setEndValue(endValueForProperty);
你应该尝试,你会避免很多冲突。