我想用QStateMachine創建一個無限循環,其中我還需要動畫。帶動畫的QStateMachine事件循環
QColor leastTransparent, mostTransparent = color();
leastTransparent.setAlpha(250);
mostTransparent.setAlpha(150);
QState *s1 = new QState();
s1->assignProperty(this, "color", leastTransparent);
QState *s2 = new QState();
s2->assignProperty(this, "color", mostTransparent);
QSignalTransition *transition = s1->addTransition(this, SIGNAL(triggerSignal()),s2);
QSignalTransition *transition2 = s2->addTransition(s2, SIGNAL(entered),s1);
QPropertyAnimation* animation = new QPropertyAnimation(this, "color");
animation->setDuration(5000);
transition->addAnimation(animation);
QPropertyAnimation* animation2 = new QPropertyAnimation(this, "color");
animation2->setDuration(10000);
transition2->addAnimation(animation2);
m_stateMachineAnimation->addState(s1);
m_stateMachineAnimation->addState(s2);
m_stateMachineAnimation->setInitialState(s1);
m_stateMachineAnimation->setGlobalRestorePolicy(QStateMachine::RestoreProperties);
m_stateMachineAnimation->start();
我期望的是在「triggerSignal」之後的第一個5秒鐘,顏色會變得更加不透明。國家將是「s2」。並且比「s2」的輸入信號被觸發,並且它將在10秒內變得越來越透明。
但是,相反,我正在s2觸發器立即沒有等待5秒後立即「觸發信號」,並立即s1再次觸發不等待10秒。
爲什麼我的持續時間不被QStateMachine考慮在內。我如何用QStateMachine實現這樣的動畫
你可以發佈[S.S.C.C.E.](http://www.sscce.org/)嗎? –