pausierte und fortgeführte Animation
Verfasst: 9. Mai 2013 21:51
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:
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.
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();
}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.