Frage

I have a class derived from QVariantAnimation and I have to run a code after the finish of the animation.

I tried the signal finished() yet, but there is no emit:

connect(this, SIGNAL(finished()), this, SLOT(setEndVariables()));

Is there any other opinion to see if the animation is stopped, or is the usage of the signal wrong?

Edit: with Code

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()));
}

Header File:

class LiConfigurableFrameAnimation: public QVariantAnimation
{

    private slots:
        void setEndVariables();

    };
War es hilfreich?

Lösung

I solved the problem:

I overload the function updateCurrentTime and check if the current time is equal to the duration.

updateCurrentTime(int curr)
{

    if(curr >= this->duration())....
... 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top