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

时间:2019-07-24 20:45:11

标签: c++ qt

所以我最近开始对Qt动画框架有所涉猎,我想说一切都很好,但是现在我想制作它,以便动画结束后调用函数。 ?

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

我尝试过的方法非常简单:

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

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

1 个答案:

答案 0 :(得分:4)

您需要收听动画中的finished()信号。这是连接信号的方法:

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

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