动画结束后如何调用函数?

Tei*_*u42 4 c++ qt

所以我最近开始涉足 Qt 动画框架,我想说一切都很顺利,但是现在我想让它在动画完成后调用一个函数,这可能吗?

我已经尝试在动画开始后执行该函数,但这似乎不起作用(我认为是因为 Qt 动画是在单独的线程上运行的)

我试过的方法很简单:

AnimIn->setDuration(500);
AnimIn->setStartValue(0.f);
AnimIn->setEndValue(1.f);
AnimIn->setEasingCurve(QEasingCurve::InCubic);
AnimIn->start();
MyFunction();
Run Code Online (Sandbox Code Playgroud)

我试过查看 Qt 文档但无济于事,看到几乎所有关于动画和 Qt 的内容都在我不使用的 QML 中。

Pli*_*der 5

您需要聆听finished()来自动画的信号。以下是连接信号的方法:

QObject::connect(AnimIn, &QAbstractAnimation::finished, this, &YourClass::OnAnimFinished);

其中 OnAnimFinished() 显然是您当前类中的一个插槽。当动画完成时,将发出信号并调用插槽。然后在OnAnimFinished()函数体中,您可以调用MyFunction().