Habe mich jetzt mal mit der Animationsgeschichte (QAbstractAnimation, etc.) auseinandergesetzt und versucht, meine eigene
parallele Animationsgruppe zu erstellen, damit alle entsprechenden Reihen gleichzeitig versteckt werden.
Ich erhalte jedoch bei dem unten aufgeführten Quellcode einen Fehler an der Stelle mit dem "qobject_cast<QTableWidget*>"!
=> Zugriffsverletzung beim Lesen an Position ..., also ein speicherspezifisches Problem mit den Pointern.
In meinem Fall heißt die Klasse, welche QVariantAnimation vererbt bekommt, "Animations".
Quellcodeschnippsel:
Code: Alles auswählen
QParallelAnimationGroup* groupAnimation = new QParallelAnimationGroup(this);
Animations* animation;
for(int i=0; i<list.size(); i++) {
// For fade-out effect
animation = new Animations(this, list.at(i) /*for row*/);
animation->setDuration(200);
animation->setStartValue( this->rowHeight(list.at(i)) );
animation->setEndValue(0);
groupAnimation->addAnimation(animation);
}
groupAnimation->start(Animations::DeleteWhenStopped);
Wie ist das wiederum zu lösen?
[+]
Wie schaffe ich es, das beim Fade-IN/-OUT-Effekt einer Zeile deren Inhalt synchron mitfährt?
Also:
[CLOSED]
+------------------+
[FADE-IN]
+------------------+
du
da!
+------------------+
[FADE-IN END]
+------------------+
Hallo
du
da!
+------------------+
[+]
Wie kann ich dafür sorgen, das die allokierten "Animations" Objekte nach Beenden der Animation wieder gelöscht werden?
Ich weiß das ich vor deren Löschung natürlich mit "removeAnimation(QAbstractAnimation*)" für die QParallelAnimationGroup arbeiten muss.
=> Möchte nicht unnötig Speicher belegen!