State QML Type

Provides a general-purpose state for StateMachine. More...

Import Statement: import QtQml.StateMachine 1.12
Since: Qt 5.4


Inherited By:




Detailed Description

State objects can have child states as well as transitions to other states. State is part of The Declarative State Machine Framework.

States with Child States

The childMode property determines how child states are treated. For non-parallel state groups, the initialState property must be used to set the initial state. The child states are mutually exclusive states, and the state machine needs to know which child state to enter when the parent state is the target of a transition.

The state emits the State::finished() signal when a final child state (FinalState) is entered.

The errorState sets the state's error state. The error state is the state that the state machine will transition to if an error is detected when attempting to enter the state (e.g. because no initial state has been set).

Example Usage

  import QtQuick 2.0
  import QtQml.StateMachine 1.0 as DSM

  Rectangle {
      DSM.StateMachine {
          id: stateMachine
          initialState: state
          running: true
          DSM.State {
              id: state

See also StateMachine and FinalState.

Property Documentation

childMode : enumeration

The child mode of this state

The default value of this property is QState.ExclusiveStates.

This enum specifies how a state's child states are treated:

  • QState.ExclusiveStates The child states are mutually exclusive and an initial state must be set by setting initialState property.
  • QState.ParallelStates The child states are parallel. When the parent state is entered, all its child states are entered in parallel.

errorState : QAbstractState

The error state of this state.

initialState : QAbstractState

The initial state of this state (one of its child states).

Signal Documentation


This signal is emitted when a final child state of this state is entered.

The corresponding handler is onFinished.

See also QAbstractState::active, QAbstractState::entered, and QAbstractState::exited.