QAnimationGroup Class
Die Klasse „QAnimationGroup“ ist eine abstrakte Basisklasse für Animationsgruppen. Mehr...
| Header: | #include <QAnimationGroup> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Erbt von: | QAbstractAnimation |
| Vererbt an: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QAnimationGroup ist Teil des Animation-Frameworks.
Öffentliche Funktionen
| QAnimationGroup(QObject *parent = nullptr) | |
| virtual | ~QAnimationGroup() |
| void | addAnimation(QAbstractAnimation *animation) |
| QAbstractAnimation * | animationAt(int index) const |
| int | animationCount() const |
| void | clear() |
| int | indexOfAnimation(QAbstractAnimation *animation) const |
| void | insertAnimation(int index, QAbstractAnimation *animation) |
| void | removeAnimation(QAbstractAnimation *animation) |
| QAbstractAnimation * | takeAnimation(int index) |
Neu implementierte geschützte Funktionen
| virtual bool | event(QEvent *event) override |
Ausführliche Beschreibung
Eine Animationsgruppe ist ein Container für Animationen (Unterklassen von ` QAbstractAnimation`). Eine Gruppe ist in der Regel für die Verwaltung des Ablaufs ( state ) ihrer Animationen zuständig, d. h., sie entscheidet, wann diese gestartet, gestoppt, fortgesetzt und angehalten werden. Derzeit stellt Qt zwei solche Gruppen bereit: ` QParallelAnimationGroup ` und ` QSequentialAnimationGroup`. Weitere Informationen finden Sie in den jeweiligen Klassenbeschreibungen.
Da `QAnimationGroup` von ` QAbstractAnimation` erbt, können Sie Gruppen kombinieren und auf einfache Weise komplexe Animationsgraphen erstellen. Sie können bei ` QAbstractAnimation ` abfragen, zu welcher Gruppe es gehört (mithilfe der Funktion ` group()`).
Um eine Animationsgruppe der obersten Ebene zu starten, verwenden Sie einfach die Funktion ` start()` von ` QAbstractAnimation`. Unter einer Animationsgruppe der obersten Ebene verstehen wir eine Gruppe, die selbst nicht in einer anderen Gruppe enthalten ist. Das direkte Starten von Untergruppen wird nicht unterstützt und kann zu unerwartetem Verhalten führen.
QAnimationGroup bietet Methoden zum Hinzufügen und Abrufen von Animationen. Darüber hinaus können Sie Animationen durch Aufruf von ` removeAnimation()` entfernen und die Animationsgruppe durch Aufruf von ` clear()` löschen. Sie können Änderungen an den Animationen der Gruppe verfolgen, indem Sie auf die Ereignisse ` QEvent::ChildAdded ` und ` QEvent::ChildRemoved ` abhören.
QAnimationGroup übernimmt die Verantwortung für die von ihr verwalteten Animationen und stellt sicher, dass diese gelöscht werden, wenn die Animationsgruppe gelöscht wird.
Siehe auch „ QAbstractAnimation “, „ QVariantAnimation “ und „Das Animations-Framework“.
Dokumentation der Mitgliedsfunktionen
QAnimationGroup::QAnimationGroup(QObject *parent = nullptr)
Erstellt eine `QAnimationGroup`. ` parent ` wird an den Konstruktor von ` QObject` übergeben.
[virtual noexcept] QAnimationGroup::~QAnimationGroup()
Löscht die Animationsgruppe. Dabei werden auch alle zugehörigen Animationen gelöscht.
void QAnimationGroup::addAnimation(QAbstractAnimation *animation)
Fügt „ animation “ zu dieser Gruppe hinzu. Dadurch wird „ insertAnimation “ mit dem Index „ animationCount “ () aufgerufen.
Hinweis: Die Gruppe übernimmt die Verantwortung für die Animation.
Warnung: Diese Methode prüft nicht auf Animationsschleifen. Es liegt in der Verantwortung des Entwicklers, sicherzustellen, dass die hinzugefügte „ animation “ weder direkt noch indirekt die Animationsgruppe „ this “ enthält.
Siehe auch ` removeAnimation()`.
QAbstractAnimation *QAnimationGroup::animationAt(int index) const
Gibt einen Zeiger auf die Animation unter index in dieser Gruppe zurück. Diese Funktion ist nützlich, wenn Sie auf eine bestimmte Animation zugreifen möchten. index liegt zwischen 0 und animationCount() - 1.
Siehe auch animationCount() und indexOfAnimation().
int QAnimationGroup::animationCount() const
Gibt die Anzahl der von dieser Gruppe verwalteten Animationen zurück.
Siehe auch indexOfAnimation(), addAnimation() und animationAt().
void QAnimationGroup::clear()
Entfernt und löscht alle Animationen in dieser Animationsgruppe und setzt die aktuelle Zeit auf 0 zurück.
Siehe auch addAnimation() und removeAnimation().
[override virtual protected] bool QAnimationGroup::event(QEvent *event)
Umsetzt: ` QAbstractAnimation::event(QEvent *event)`.
int QAnimationGroup::indexOfAnimation(QAbstractAnimation *animation) const
Gibt den Index von „ animation “ zurück. Der zurückgegebene Index kann an andere Funktionen übergeben werden, die einen Index als Argument erwarten.
Siehe auch ` insertAnimation()`, ` animationAt()` und ` takeAnimation()`.
void QAnimationGroup::insertAnimation(int index, QAbstractAnimation *animation)
Fügt „ animation “ an der Position „ index “ in diese Animationsgruppe ein. Ist „ index “ gleich 0, wird die Animation am Anfang eingefügt. Ist „ index “ gleich „ animationCount()“, wird die Animation am Ende eingefügt.
Hinweis: Die Gruppe übernimmt die Verantwortung für die Animation.
Warnung: Diese Methode prüft nicht auf Animationsschleifen. Es liegt in der Verantwortung des Entwicklers, sicherzustellen, dass die hinzugefügte „ animation “ weder direkt noch indirekt die Animationsgruppe „ this “ enthält.
Siehe auch „ takeAnimation()“, „ addAnimation()“, „ indexOfAnimation()“ und „ removeAnimation()“.
void QAnimationGroup::removeAnimation(QAbstractAnimation *animation)
Entfernt animation aus dieser Gruppe. Die Eigentumsrechte an animation werden auf den Aufrufer übertragen.
Siehe auch takeAnimation(), insertAnimation() und addAnimation().
QAbstractAnimation *QAnimationGroup::takeAnimation(int index)
Gibt die Animation unter index zurück und entfernt sie aus der Animationsgruppe.
Hinweis: Die Eigentumsrechte an der Animation werden auf den Aufrufer übertragen.
Siehe auch removeAnimation(), addAnimation(), insertAnimation() und indexOfAnimation().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.