Je n'arrive pas à comprendre comment fonctionne la fonction setScaleAt de QGraphicsItemAnimation. Voici le code que je utilise:Qt Animation
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();
Tout ce que je veux faire est d'afficher un point au milieu de l'écran, ont ensuite étendre à un cercle de plus de 3 secondes. Ce que ce code me donne est un point qui apparaît dans le coin supérieur gauche, puis se développe et se déplace simultanément au milieu. J'ai essayé de compenser en mettant la position à chaque étape, mais cela semble assez compliqué. Il doit y avoir une façon plus propre de faire cela.
De plus, l'élément d'origine est affiché pendant une fraction de seconde avant le début de l'animation, est-il possible de le masquer par défaut, puis de l'afficher pour l'animation?
Merci d'avance.
Cela a fait l'affaire. Merci! – JCL