所以我最近开始涉足 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 中。
您需要聆听finished()来自动画的信号。以下是连接信号的方法:
QObject::connect(AnimIn, &QAbstractAnimation::finished, this, &YourClass::OnAnimFinished);
其中 OnAnimFinished() 显然是您当前类中的一个插槽。当动画完成时,将发出信号并调用插槽。然后在OnAnimFinished()函数体中,您可以调用MyFunction().
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |