1
我有一个派生自QVariantAnimation
的类,我必须在动画结束后运行代码。检查QVariantAnimation是否完成?
我试过信号finished()
尚未,但没有EMIT:
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();
};
为什么同一个对象('this')中的信号和插槽?它不应该像'connect(,SIGNAL(finished()),this,SLOT(setEndVariables()));'? –
SingerOfTheFall
但我在我覆盖QVariantAnimation类的连接,所以我认为这是可以使用相同的对象(这)?或者我错了,这是不可能的?谢谢你的评论! – MPhil
是的,在这种情况下,它是好的,我只是想检查它是否是一个错字。你是否超载'开始'或任何其他功能?此外,您可以随时调用'state()'来检查动画是否仍在运行。 – SingerOfTheFall