State QML Type

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

Import Statement: import QtQml.StateMachine 1.0
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.

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.