我试图通过使用QGraphicsItemAnimation控制多个项目动画。为了理解QGraphicsItemAnimation,我将有一个QTimeline和几个QGraphicsItems,它们由QGraphicsItemAnimation控制。
首先,我没有使用QGraphicsItemAnimation,只使用QTimeline,并连接QTimeline和QGraphicsItem。
像这样:
connect(timeLine, SIGNAL(valueChanged(qreal)), graphicsItem, SLOT(scale(qreal)));
void GraphicsItem::scale(qreal value)
{
setTransform(QTransform()
.translate(mZoomFactor.x(), mZoomFactor.y())
.scale(value + 1, value + 1)
.translate(-mZoomFactor.x(), -mZoomFactor.y()));
}
但是使用这种方式可以使动画看起来像丢帧。
所以我引用了Qt示例,但是QGraphicsItemAnimation不提供像setTransformAt()
或setOpacityAt()
这样的函数。复杂动画有Qt例子吗?