【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机
1、简述
1)当状态很多时,可以对状态分组,可以实现状态在组内跳转,组之间跳转,还能实现跨组跳转。
比如三个子状态state1_1、state1_2、state1_3 在某个条件下都会跳转到状态 state2,这时就可以将这三个子状态state1_1、state1_2、state1_3分组到父状态 state1 中,并实现从 state1 到 state2 的跳转。
好处是,不用分别写 state1_1、state1_2、state1_3 到 state2 的跳转条件。
2)分组后,从 state1 跳到 state2 ,再跳回 state1 状态后,默认将从 state1 的初始状态开始;如果想回到 state1 的上次历史状态,可以使用 QHistoryState
2、状态分组示例
1)实现三个父状态
m_machine = new QStateMachine(