QStateMachine: переходы между всеми состояниями

Я занимаюсь разработкой приложения для векторного рисования. У меня есть QStateMachine с 4 QStates: DefaultState, SelectionState, LineDrawingState, PolygonDrawingState. Когда пользователь нажимает соответствующую кнопку инструмента, запускается соответствующий переход и вводится состояние. Пользователь может переключаться между любым из 4 инструментов (и базовых состояний).

Здесь проблема. Мне нужно создать 3 объекта перехода для каждого отдельного состояния, чтобы конечный автомат мог переключаться из текущего состояния в любое другое состояние. Я имею в виду, я должен:

defaultState->addTransition(new SwitchModeTransition(GPM_SelectObject, selectionState) );
defaultState->addTransition(new SwitchModeTransition(GPM_DrawLine, lineDrawingState) );
defaultState->addTransition(new SwitchModeTransition(GPM_DrawPolygon, polygonDrawingState) );
...
selectionState->addTransition(new SwitchModeTransition(GPM_Default, defaultState) );
selectionState->addTransition(new SwitchModeTransition(GPM_DrawLine, lineDrawingState) );
selectionState->addTransition(new SwitchModeTransition(GPM_DrawPolygon, polygonDrawingState) );
... // and so on for every single state

Это кажется излишним. Есть ли более простой способ заставить QStateMachine переключаться между всеми 4 состояниями при срабатывании соответствующего перехода?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]