s1、s2、s3、s4 の 3 つの状態を持つステート マシンがあります。状態 s1、s2、および s3 から、マシンはエラー状態に入ることができます。
QStateMachine machine;
QState *s1 = new QState();
QState *s2 = new QState();
QState *s3 = new QState();
QFinalState *s4 = new QFinalState();
s1->addTransition(object, SIGNAL(done()), s2);
s2->addTransition(object, SIGNAL(done()), s3);
s3->addTransition(object, SIGNAL(done()), s4);
machine.addState(s1);
machine.addState(s2);
machine.addState(s3);
machine.addState(s4);
machine.setInitialState(s1);
これを行う最善の方法は何ですか?私はそれをグーグルで調べていましたが、運がありませんでした。このようなことをしても大丈夫ですか?
QFinalState *sx = new QFinalState();
machine.addState(sx);
s1->addTransition(object, SIGNAL(error()), sx );
s2->addTransition(object, SIGNAL(error()), sx );
s3->addTransition(object, SIGNAL(error()), sx );