Details
-
Technical task
-
Resolution: Unresolved
-
P2: Important
-
None
Description
SignalTransition.guard is documented as a bool property, but is implemented under-the-hood as a QQmlScriptString
Code (adapted from https://doc.qt.io/qt-6/qml-qtqml-statemachine-signaltransition.html#example-usage )
import QtQuick import QtQuick.Controls.Basic import QtQml.StateMachine as DSM Window { width: 640 height: 480 visible: true DSM.StateMachine { id: stateMachine initialState: state running: true DSM.State { id: state DSM.SignalTransition { targetState: finalState signal: button.clicked guard: guardButton.checked } } DSM.FinalState { id: finalState } onFinished: Qt.quit() } Row { spacing: 2 Button { id: button text: "Finish state" } Button { id: guardButton checkable: true text: checked ? "Press to block the SignalTransition" : "Press to unblock the SignalTransition" } } }
Compiler output
Warning: main.qml:19:24: Cannot assign binding of type bool to QQmlScriptString [incompatible-type] guard: guardButton.checked ^^^^^^^^^^^^^^^^^^^ Warning: main.qml:19:43: Could not compile binding for guard: cannot convert from bool of QQuickAbstractButton::checked with type bool to QQmlScriptString of QQmlScriptString [compiler]
Attachments
Issue Links
- relates to
-
QTBUG-77417 qmllint: need to handle SignalTransition guard properties
-
- Reported
-