QGraphicsItemAnimation Class
Die Klasse QGraphicsItemAnimation bietet einfache Animationsunterstützung für QGraphicsItem. Mehr...
Kopfzeile: | #include <QGraphicsItemAnimation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Vererbt: | QObject |
Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
Öffentliche Funktionen
QGraphicsItemAnimation(QObject *parent = nullptr) | |
virtual | ~QGraphicsItemAnimation() |
void | clear() |
qreal | horizontalScaleAt(qreal step) const |
qreal | horizontalShearAt(qreal step) const |
QGraphicsItem * | item() const |
QPointF | posAt(qreal step) const |
QList<std::pair<qreal, QPointF>> | posList() const |
qreal | rotationAt(qreal step) const |
QList<std::pair<qreal, qreal>> | rotationList() const |
QList<std::pair<qreal, QPointF>> | scaleList() const |
void | setItem(QGraphicsItem *item) |
void | setPosAt(qreal step, const QPointF &point) |
void | setRotationAt(qreal step, qreal angle) |
void | setScaleAt(qreal step, qreal sx, qreal sy) |
void | setShearAt(qreal step, qreal sh, qreal sv) |
void | setTimeLine(QTimeLine *timeLine) |
void | setTranslationAt(qreal step, qreal dx, qreal dy) |
QList<std::pair<qreal, QPointF>> | shearList() const |
QTimeLine * | timeLine() const |
QTransform | transformAt(qreal step) const |
QList<std::pair<qreal, QPointF>> | translationList() const |
qreal | verticalScaleAt(qreal step) const |
qreal | verticalShearAt(qreal step) const |
qreal | xTranslationAt(qreal step) const |
qreal | yTranslationAt(qreal step) const |
Öffentliche Slots
void | setStep(qreal step) |
Geschützte Funktionen
virtual void | afterAnimationStep(qreal step) |
virtual void | beforeAnimationStep(qreal step) |
Detaillierte Beschreibung
Die Klasse QGraphicsItemAnimation animiert ein QGraphicsItem. Sie können Änderungen an der Transformationsmatrix des Elements in bestimmten Schritten planen. Die Klasse QGraphicsItemAnimation hat einen aktuellen Schrittwert. Wenn sich dieser Wert ändert, werden die für diesen Schritt geplanten Transformationen durchgeführt. Der aktuelle Schritt der Animation wird mit der Funktion setStep()
festgelegt.
QGraphicsItemAnimation führt eine einfache lineare Interpolation zwischen den nächstgelegenen geplanten Änderungen durch, um die Matrix zu berechnen. Wenn Sie zum Beispiel die Position eines Elements auf die Werte 0.0 und 1.0 setzen, wird die Animation das Element in einer geraden Linie zwischen diesen Positionen bewegen. Das Gleiche gilt für die Skalierung und Drehung.
Es ist üblich, die Klasse mit einem QTimeLine zu verwenden. Das Signal valueChanged() der Zeitleiste wird dann mit dem Slot setStep()
verbunden. Sie können z. B. ein Element für die Drehung einrichten, indem Sie setRotationAt()
für verschiedene Schrittwerte aufrufen. Die Zeitleiste für die Animation wird mit der Funktion setTimeLine() festgelegt.
Es folgt eine Beispielanimation mit einer Zeitleiste:
QGraphicsItem *ball = new QGraphicsEllipseItem(0, 0, 20, 20); QTimeLine *timer = new QTimeLine(5000); timer->setFrameRange(0, 100); QGraphicsItemAnimation *animation = new QGraphicsItemAnimation; animation->setItem(ball); animation->setTimeLine(timer); for (int i = 0; i < 200; ++i) animation->setPosAt(i / 200.0, QPointF(i, i)); QGraphicsScene *scene = new QGraphicsScene; scene->setSceneRect(0, 0, 250, 250); scene->addItem(ball); QGraphicsView *view = new QGraphicsView(scene); view->show(); timer->start();
Beachten Sie, dass die Schritte zwischen 0,0 und 1,0 liegen. Möglicherweise ist es erforderlich, setUpdateInterval() zu verwenden. Das Standard-Aktualisierungsintervall beträgt 40 ms. Eine geplante Transformation kann nicht entfernt werden, wenn sie festgelegt wurde, daher ist es nicht empfehlenswert, mehrere Transformationen der gleichen Art (z. B. Rotationen) im gleichen Schritt zu planen.
Siehe auch QTimeLine und Graphics View Framework.
Dokumentation der Mitgliedsfunktionen
QGraphicsItemAnimation::QGraphicsItemAnimation(QObject *parent = nullptr)
Konstruiert ein Animationsobjekt mit dem angegebenen parent.
[virtual noexcept]
QGraphicsItemAnimation::~QGraphicsItemAnimation()
Zerstört das Animationsobjekt.
[virtual protected]
void QGraphicsItemAnimation::afterAnimationStep(qreal step)
Diese Methode soll in Unterklassen überschrieben werden, die zusätzlichen Code ausführen müssen, nachdem ein neuer Schritt stattgefunden hat. Die Animation step ist für die Verwendung in Fällen vorgesehen, in denen die Aktion von ihrem Wert abhängt.
[virtual protected]
void QGraphicsItemAnimation::beforeAnimationStep(qreal step)
Diese Methode ist dafür gedacht, von Unterklassen überschrieben zu werden, die zusätzlichen Code ausführen müssen, bevor ein neuer Schritt stattfindet. Die Animation step ist für die Verwendung in Fällen vorgesehen, in denen die Aktion von ihrem Wert abhängt.
void QGraphicsItemAnimation::clear()
Löscht die geplanten Transformationen, die für die Animation verwendet wurden, behält aber das Element und die Zeitleiste bei.
qreal QGraphicsItemAnimation::horizontalScaleAt(qreal step) const
Gibt die horizontale Skala für das Element mit dem angegebenen Wert step zurück.
Siehe auch setScaleAt().
qreal QGraphicsItemAnimation::horizontalShearAt(qreal step) const
Liefert die horizontale Scherung für das Element mit dem angegebenen Wert step.
Siehe auch setShearAt().
QGraphicsItem *QGraphicsItemAnimation::item() const
Gibt das Element zurück, auf das das Animationsobjekt wirkt.
Siehe auch setItem().
QPointF QGraphicsItemAnimation::posAt(qreal step) const
Gibt die Position des Elements an dem angegebenen step Wert zurück.
Siehe auch setPosAt().
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::posList() const
Gibt alle explizit eingefügten Positionen zurück.
Siehe auch posAt() und setPosAt().
qreal QGraphicsItemAnimation::rotationAt(qreal step) const
Gibt den Winkel zurück, um den das Element mit dem angegebenen Wert step gedreht wird.
Siehe auch setRotationAt().
QList<std::pair<qreal, qreal>> QGraphicsItemAnimation::rotationList() const
Gibt alle explizit eingefügten Rotationen zurück.
Siehe auch rotationAt() und setRotationAt().
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::scaleList() const
Gibt alle explizit eingefügten Skalen zurück.
Siehe auch verticalScaleAt(), horizontalScaleAt(), und setScaleAt().
void QGraphicsItemAnimation::setItem(QGraphicsItem *item)
Legt die angegebene item fest, die in der Animation verwendet werden soll.
Siehe auch item().
void QGraphicsItemAnimation::setPosAt(qreal step, const QPointF &point)
Setzt die Position des Elements am angegebenen step Wert auf die angegebene point.
Siehe auch posAt().
void QGraphicsItemAnimation::setRotationAt(qreal step, qreal angle)
Setzt die Drehung des Elements mit dem angegebenen step Wert auf die angegebene angle.
Siehe auch rotationAt().
void QGraphicsItemAnimation::setScaleAt(qreal step, qreal sx, qreal sy)
Setzt die Skalierung des Elements auf den angegebenen step Wert unter Verwendung der durch sx und sy angegebenen horizontalen und vertikalen Skalierungsfaktoren.
Siehe auch verticalScaleAt() und horizontalScaleAt().
void QGraphicsItemAnimation::setShearAt(qreal step, qreal sh, qreal sv)
Setzt die Scherung des Elements auf den angegebenen step Wert unter Verwendung der horizontalen und vertikalen Scherungsfaktoren, die unter sh und sv angegeben sind.
Siehe auch verticalShearAt() und horizontalShearAt().
[slot]
void QGraphicsItemAnimation::setStep(qreal step)
Legt den aktuellen Wert step für die Animation fest, wodurch die in diesem Schritt geplanten Transformationen ausgeführt werden.
void QGraphicsItemAnimation::setTimeLine(QTimeLine *timeLine)
Setzt das Timeline-Objekt, das zur Steuerung der Animationsrate verwendet wird, auf die angegebene timeLine.
Siehe auch timeLine().
void QGraphicsItemAnimation::setTranslationAt(qreal step, qreal dx, qreal dy)
Setzt die Verschiebung des Elements auf den angegebenen Wert step unter Verwendung der durch dx und dy angegebenen horizontalen und vertikalen Koordinaten.
Siehe auch xTranslationAt() und yTranslationAt().
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::shearList() const
Gibt alle explizit eingefügten Scheren zurück.
Siehe auch verticalShearAt(), horizontalShearAt(), und setShearAt().
QTimeLine *QGraphicsItemAnimation::timeLine() const
Gibt das Timeline-Objekt zurück, mit dem die Geschwindigkeit der Animation gesteuert wird.
Siehe auch setTimeLine().
QTransform QGraphicsItemAnimation::transformAt(qreal step) const
Gibt die für das Element verwendete Transformation mit dem angegebenen Wert step zurück.
QList<std::pair<qreal, QPointF>> QGraphicsItemAnimation::translationList() const
Gibt alle explizit eingefügten Übersetzungen zurück.
Siehe auch xTranslationAt(), yTranslationAt(), und setTranslationAt().
qreal QGraphicsItemAnimation::verticalScaleAt(qreal step) const
Gibt den vertikalen Maßstab für das Element mit dem angegebenen Wert step zurück.
Siehe auch setScaleAt().
qreal QGraphicsItemAnimation::verticalShearAt(qreal step) const
Liefert die vertikale Scherung für das Element mit dem angegebenen Wert step.
Siehe auch setShearAt().
qreal QGraphicsItemAnimation::xTranslationAt(qreal step) const
Gibt die horizontale Verschiebung des Elements mit dem angegebenen Wert step zurück.
Siehe auch setTranslationAt().
qreal QGraphicsItemAnimation::yTranslationAt(qreal step) const
Gibt die vertikale Verschiebung des Elements mit dem angegebenen Wert step zurück.
Siehe auch setTranslationAt().
© 2025 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.