我有一个派生自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();
};
答案 0 :(得分:0)
我解决了这个问题:
我重载函数updateCurrentTime并检查当前时间是否等于持续时间。
updateCurrentTime(int curr)
{
if(curr >= this->duration())....
...