「ScaleAnimation」を実装する適切な方法を探していました。私の目的は、QImageをアニメーション化することです。
timeline = new QTimeLine(time);
timeline->setFrameRange(0, 100);
animation = new QGraphicsItemAnimation;
QRectF rect = item->boundingRect();
int h = rect.bottom() - rect.top();
int w = rect.right() - rect.left();
animation->setItem(item);
animation->setTimeLine(timeline);
for (int i = 0; i < 100; i++) {
int x = w + (int)((float)w*(float)(i/100.0));
qreal xx = (qreal)(x)/(qreal)w;
int y = (h) + (int)((float)h*(float)(i/100.0));
qreal yy = (qreal)(y)/(qreal)h;
animation->setScaleAt(i/100, xx, yy);
}
動作しているようですが、アニメーションの原点は(0, 0)
。でアニメーションを適用する方法はあります(w/2, h/2)
か?アニメーションを書き直すためのより良い、より効率的な(または正しい)方法はありますか?私はQtの世界でnewbeeをやめました。
お待ちいただいてありがとうございます。