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