Changes to Qt SCXML
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 SCXML module, and provide guidance to handle them.
Changes overview
The Qt SCXML module is largely source compatible with the Qt5 version and users of the library should be able to continue with no or minor changes to their project.
API changes
QScxmlEcmaScriptDataModel API removal
The ecmascript datamodel, when enabled, introduces a dependency to the Qt QML library. In Qt5 this depedendency is created at build time, whereas in Qt6 the dependency is moved to runtime (internally a plugin). As a consequence the QScxmlEcmaScriptDataModel class is no longer part of the public API.
Build system
As with Qt6 in general, the Qt SCXML 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.