有时候对象有多个状态,如CheckBox(可打勾的)这个窗口小部件,可使它有三种状态:选中,未选中,与中间态。状态机机制使对象能在不同状态间切换,使对象处于其中一状态。
主要涉及的类继承关系如下:
这两种类的关系:各种变换(Transition)被加进状态(State),多个状态被加进状态机(StateMachine)启动执行。
基本使用模式:
QStateMachine machine;
QState *s1 = new QState();
QState *s2 = new QState();
s1->addTransition(button, SIGNAL(clicked()), s2);//或addTransition(QAbstractTransition * transition)
s2->addTransition(button, SIGNAL(clicked()), s3);
machine.addState(s1);
machine.addState(s2);
machine.start();