#include <QStateMachine>
#include <QState>
#include <QFinalState>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
// 创建状态机
QStateMachine stateMachine;
// 创建三个状态
QState *state1 = new QState(&stateMachine);
QState *state2 = new QState(&stateMachine);
QState *state3 = new QState(&stateMachine);
// 添加状态到状态机
stateMachine.addState(state1);
stateMachine.addState(state2);
stateMachine.addState(state3);
// 将状态1转换为状态2的过渡
state1->addTransition(someObject, SIGNAL(someSignal()), state2);
// 将状态1转换为状态3的过渡
state1->addTransition(otherObject, SIGNAL(otherSignal()), state3);
// 启动状态机并进入状态1
stateMachine.setInitialState(state1);
stateMachine.start();
// 运行事件循环
return app.exec();
}