Seite 1 von 1

pausierte und fortgeführte Animation

Verfasst: 9. Mai 2013 21:51
von marcel87
Hallo!

Ich habe ein Button, dieser soll sich nur innerhalb der y-Koordinaten bewegen (37-545). Das bedeutet er darf sich nur hoch oder runter innerhalb dieses Intervalls (37-545) bewegen.

Dabei sollte sich dieser erst bewegen, wenn eine Koordinate ausgewählt wurde. Falls der Button sich nach unten bewegt, soll dieser bei jeder weiteren gewählten Koordinate kurz anhalten und weiter zum gewünschten Ziel fahren. (Solange sich die Koordinate auf dem Weg des ursprünglichen Ziels befindet)

Das Problem: Ich schaffe es nicht die Animation an einem Zwischenziel anzuhalten (z.B. für 5 sek.) und danach zum Ursprungsziel weiter fahren zu lassen.

Hier ein Schnippsel, womit ich animiere:

Code: Alles auswählen

void meineKlasse::meinSlot()
{


    // die Animation soll starten, wenn eines der fünf Button gedrückt wurde oder wäre eine while-schleife besser als eine if-Abfrage?
    if(gedrueckt1 == true||gedrueckt2 == true||gedrueckt3 == true||gedrueckt4 == true||gedrueckt5 == true)
   
 {  
QPropertyAnimation*animation= new QPropertyAnimation(Ui->Button, "geometry");

                  
                        //das ist nur die Animation, die ich nutze
                        animation->setDuration(Fahrtdauer);
                        QRect endposition(x_Position,y_Position,X_GROESSE,Y_GROESSE);

                        animation->setEndValue(endposition);
                        animation->start();
 }
Ich habe verschiedene Schleifen-Möglichkeiten versucht. Am besten wäre mir eine Zeitschleife, die den Button solange animiert(also den Button an Ort und Stelle lässt) wie ich es brauche. Leider schaffe ich es nicht, eine Zeitschleife zu schreiben, die richtig funktioniert. Ich habe zuerst Sleep versucht, aber dies brachte nichts. Dann mit Qtimer probiert, funktionierte auch nicht. Wenn ich z.B. schreiben würde "while(timer<5000)" ist es logisch, dass die Bedingung nicht koventiert bzw. kompiliert werden kann.

Gibt es denn eine geeignete Zeitschleife, die z.B. 5 sek. läuft und dazu die obige Animation ausführt?

P.S. Ich arbeite mit Qt 5.0.1 und natürlich der dazugehörigen Dokumentation.

Re: pausierte und fortgeführte Animation

Verfasst: 9. Mai 2013 23:23
von veeman
Schon mal mit QSequentialAnimationGroup versucht?
Die Klasse bietet auch die Möglichkeit Pausen einzufügen.

Re: pausierte und fortgeführte Animation

Verfasst: 13. Mai 2013 22:45
von marcel87
Hallo!

Danke für die schnelle antwort. Ich hab das anders gelöst.