我有一个派生自 QVariantAnimation
的类,我必须在动画结束后运行一段代码。
我试过 finished()
信号,但是没有发射:
connect(this, SIGNAL(finished()), this, SLOT(setEndVariables()));
有没有其他意见,看动画是不是停止了,还是信号的用法不对?
编辑:用代码
LiConfigurableFrameAnimation::LiConfigurableFrameAnimation(QString compId, int dur, LiConfigurableFrame *f)
{
if(dur>0)
this->setDuration(dur);
frame=f;
widget=frame->getComponent(compId);
isRectMode=false;
isImageMode=false;
connect(this, SIGNAL(finished()), this, SLOT(setEndVariables()));
}
头文件:
class LiConfigurableFrameAnimation: public QVariantAnimation
{
private slots:
void setEndVariables();
};
最佳答案
我解决了这个问题:
我重载函数 updateCurrentTime 并检查当前时间是否等于持续时间。
updateCurrentTime(int curr)
{
if(curr >= this->duration())....
...
关于c++ - 检查 QVariantAnimation 是否完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383020/