animationFinished()是QPropertyAnimation类的一个信号,表示动画已经完成。可以通过连接该信号到一个槽函数来执行一些操作。
以下是一个示例代码,在动画完成时输出一条消息:
#include <QtWidgets>
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
setGeometry(100, 100, 200, 200);
QPropertyAnimation *animation = new QPropertyAnimation(this, "geometry");
animation->setDuration(1000);
animation->setStartValue(QRect(100, 100, 200, 200));
animation->setEndValue(QRect(300, 300, 200, 200));
connect(animation, &QPropertyAnimation::finished, this, &MyWidget::onAnimationFinished);
animation->start();
}
public slots:
void onAnimationFinished()
{
qDebug() << "Animation finished";
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
#include "main.moc"
在上述代码中,我们创建了一个自定义的QWidget子类MyWidget,并在构造函数中创建了一个QPropertyAnimation对象。我们将animationFinished()信号与MyWidget类的onAnimationFinished槽函数进行连接。当动画完成时,会调用该槽函数,并输出一条消息”Animation finished”。
运行以上代码,你将看到窗口平滑地从初始位置移动到结束位置,并在动画完成后控制台输出”Animation finished”。
内容由零声教学AI助手提供,问题来源于学员提问