Bonjour,
J'utilise Qt depuis peu et je sèche sur un problème (jusqu'à présent j'ai pu m'en sortir grâce à la doc vraiment bien faite). Je n'arrive pas à utiliser setEasingCurve comme je le voudrais et à vrai dire, je ne sais même pas si c'est cette fonction qu'il me faut.
Mon problème :
Je cherche à déplacer une image (que j'ai collé dans un QLabel).
La vitesse de déplacement sur l'axe x doit être constante tandis que celle sur l'axe y doit être variable.
Ici, le "setEasingCurve(QEasingCurve::InOutSine);" applique une variation de vitesse identique sur les deux axes. Je n'arrive pas à dissocier les deux axes.
Voilà le bout de code concerné :
Si quelqu'un a une idée. Là, je ne vois vraiment pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 QDialog *anim = new QDialog; anim->setWindowTitle("OK"); anim->setFixedSize(800,600); QLabel *diab = new QLabel(); diab->setPixmap(QPixmap("images/diabolo.png")); QPropertyAnimation *animation = new QPropertyAnimation(diab, "geometry"); animation->setDuration(3000); // trajet en l'air animation->setKeyValueAt(0,QRect(330, 350, 67, 67)); animation->setKeyValueAt(0.5,QRect(250, 50, 67, 67)); animation->setKeyValueAt(1,QRect(170, 350, 67, 67)); animation->setEasingCurve(QEasingCurve::InOutSine); animation->setLoopCount(-1); animation->start(); QVBoxLayout *layout = new QVBoxLayout(); layout->addWidget(diab); anim->setLayout(layout); anim->show();
Merci d'avance
Partager