Changes to Qt State Machine

Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use.

We try to maintain binary and source compatibility for all the public APIs in each release. But some changes were inevitable in an effort to make Qt a better framework.

In this topic we summarize those changes in Qt State Machine module, and provide guidance to handle them.


The Qt StateMachine module is generally speaking source compatible with the Qt5 version and users of the library should be able to continue with no or minor changes to their project.


The QSignalTransition::senderObject() getter and the related Q_PROPERTY now also use const QObject*. These are now better aligned with the setter QSignalTransition::setSenderObject(const QObject*) that takes a const QObject* as a parameter.

Build system

As with Qt 6 in general, the Qt State Machine module has cmake support in addition to qmake.

QML imports

The QML import versioning is optional unless one has a specific reason for not using the latest. Generally speaking the versioned imports work from version 5.8 to 6.x, where 'x' is the current minor release.

© 2024 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.