Qt - отслеживание движения QAbstractAnimation - PullRequest
2 голосов
/ 29 апреля 2020

У меня есть кружок на экране. Он объявлен в классе и имеет три свойства: центр, радиус X и радиус Y. У меня есть следующий код:

m_ellipse.setVisible(true);
m_ellipse.setCenter(QPoint(30, 30));
m_ellipse.setRadiusX(40);
m_ellipse.setRadiusY(40);


QPropertyAnimation *animationCenter = new QPropertyAnimation(&m_ellipse, "center", this);
animationCenter->setStartValue(QPoint(30, 30));
animationCenter->setEndValue(QPoint(460, 540));
animationCenter->setDuration(3400);
animationCenter->start();

Есть ли способ получить текущую позицию или изменить базовый c центр во время анимации?

1 Ответ

2 голосов
/ 29 апреля 2020

Одним из возможных решений является использование сигнала valueChanged:

QObject::connect(animationCenter, &QPropertyAnimation::valueChanged, [](const QVariant &value){
    QPoint p = value.toPoint();
    qDebug() << p;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...