Changes to Qt SCXML

Qt 6 是努力使框架更高效,且更易于使用的结果。

为兼容每个发行的所有公共 API,我们试着维护二进制和源代码。但是,为使 Qt 成为更优框架,一些改变是不可避免的。

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 变化

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.

构建系统

As with Qt6 in general, the Qt SCXML module has cmake support in addition to qmake.

QML 导入

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.