- Qt 6.10
- Qt State Machine
- Qt 6.10.3 Reference Documentation

# Qt State Machine

The State Machine framework provides classes for creating and executing state graphs.

## Using the Module

### QML API

The QML types of the module are available through the `QtQml.StateMachine` import. To use the types, add the following import statement to your .qml file:

     import QtQml.StateMachine

### C++ API

Using a Qt module's C++ API requires linking against the module library, either directly or through other dependencies. Several build tools have dedicated support for this, including CMake and qmake.

#### Building with CMake

Use the `find_package()` command to locate the needed module component in the `Qt6` package:

     find_package(Qt6 REQUIRED COMPONENTS StateMachine)
     target_link_libraries(mytarget PRIVATE Qt6::StateMachine)

For more details, see the Build with CMake overview.

#### Building with qmake

To configure the module for building with qmake, add the module as a value of the `QT` variable in the project's .pro file:

     QT += statemachine

## Articles and Guides

- Qt State Machine Overview
- Qt State Machine C++ Guide
- Qt State Machine QML Guide

## Examples

- Qt State Machine Examples

## Reference

- C++ Classes and Namespaces
- QML Types

## Module Evolution

Changes to Qt State Machine lists important changes in the module API and functionality that were done for the Qt 6 series of Qt.

## Licenses

The Qt State Machine module is available under commercial licenses from The Qt Company. In addition, it is available under free software licenses: The GNU Lesser General Public License, version 3, or the GNU General Public License, version 2. See Qt Licensing for further details.