[Qt-interest] QStateMachine: There are no signals signaling adding and removing of a state

Oliver.Knoll at comit.ch Oliver.Knoll at comit.ch
Tue Aug 4 15:46:39 CEST 2009


Piotr Dobrogost wrote on Tuesday, August 04, 2009 3:28 PM:

> ...
> To do this I need a signal signaling adding new states to the
> QStateMachine but don't see anything like this. 
> 
> Any ideas?

What about introducing a "StateMachineManager", something like:

class StateMachineManager : public QObject {
  Q_OBJECT
public:
  // c'tor
  StateMachineManager(StateMachineHandler &stateMachineHandler);
  ...
  void addState(QState *state);
private:
  QStateMachine m_stateMachine; // HAS-A
  StateMachineHandler &m_stateMachineHandler;
};

void StateMachineManager::addState(QState *state) {
  m_stateMachine.add(state);
  connect(state, SIGNAL(entered()),
              &m_stateMachineHandler, SLOT(handleEntered()));
}

Cheers, Oliver
-- 
Oliver Knoll
Dipl. Informatik-Ing. ETH
COMIT AG - ++41 79 520 95 22



More information about the Qt-interest-old mailing list