1
상태 시스템에 대한 사용자 정의 게시 이벤트가 수락되었는지 확인해야합니다. 내 접근 방식은 QStateMachine을 하위 클래스로 만드는 것입니다. http://doc.qt.nokia.com/latest/statemachine-api.html 섹션 이벤트, 전환 및 보호자QStateMachine에 게시/거부 된 QEvent를 어떻게 감지합니까?
아래 코드에서 놓친 것이 없는지 궁금합니다. 다른/더 나은 접근법이 없습니까?
bool MyStateTransition::eventTest(QEvent *e)
{
if (e->type() != QEvent::Type(QEvent::User+1)) // MyEvent
return false;
MyEvent *se = static_cast<MyEvent*>(e);
if(m_value != se->value)
{
se->setRejected(true);
return false;
}
qDebug() << "MyStateTransition::eventTest() - Transition " << m_value << " accepting event " << se->value;
se->setRejected(false);
return true;
}
그리고 거부 감지하는 내가 지금까지에 찾을 수있는 간단한 방법은 이것이다 : 기본적으로 여기
는 Qt는 문서에 따라 동일
void MyStateMachine::endSelectTransitions(QEvent *event)
{
if (event->type() != QEvent::Type(QEvent::User+1)) return;
MyEvent *se = static_cast<MyEvent*>(event);
if(se->rejected())
emit eventRejected(se);
else
//Not really needed since we can use triggered() which will fire after
emit eventAccepted(se);
}
이'MyStateMachine :: endSelectTransitions' 메소드는 무엇입니까? –
상태 머신이 모든 대상 전이 ("QStateMachine"의 일부)를 "넘어"갔을 때 호출되는 가상 메소드 –
워드 프로세서에서 보이지 않습니다. 그것에 대한 링크를 게시 할 수 있습니까? –