2
QGraphicsItemAnimationのsetScaleAt関数がどのように機能するのか理解できません。ここで私が使用しているコードです:Qtアニメーション
QGraphicsItem *item=scene.addEllipse(400, 300, 100, 100, QPen(), QBrush(Qt::SolidPattern));
QTimeLine *timeline=new QTimeLine(3000);
timeline->setFrameRange(0, 100);
QGraphicsItemAnimation *animation=new QGraphicsItemAnimation;
animation->setItem(item);
animation->setTimeLine(timeline);
for (int i=0; i<100; i++) {
animation->setScaleAt(i/100.0, i/100.0, i/100.0);
}
connect(timeline, SIGNAL(valueChanged(qreal)), animation, SLOT(setStep(qreal)));
timeline->start();
が、私はそれがやりたいすべては、それが3秒かけて円に拡大してきた、画面の中央にドットが表示されています。このコードが私を得るのは、左上隅に表示され、次に成長し、同時に中央に移動する点です。私は各ステップでポジションを設定することによって補正しようとしましたが、これはかなり畳み込まれているようです。これを行うにはよりクリーンな方法が必要です。
また、元のアイテムはアニメーションが開始する前に1秒間表示されます。デフォルトで非表示にする方法はありますか?
ありがとうございます。
これはそのトリックでした。ありがとう! – JCL