Ich habe eine C++ - Klasse und ich machte es möglich, in QML erstellen zu können. Dann habe ich ein Signal in QML, das ein Argument für dieses Objekt hat. Ich verwende die QtQml.StateMachine
und ich fange getriggerte Signale mit SignalTransition
. Ich möchte in der Lage sein, mein Signal-Argument auf den nächsten Zustand zu setzen, wenn der SignalTransition
auslöst. In Code:So verwenden Sie das Argument eines Signals in QML StateMachine während SignalTransition
Dies ist, wie mein Signal wie in Model.qml aussieht:
signal mySignal(CustomObject customObject)
Mein Signal transitioning Code in State.qml:
import QtQml.StateMachine 1.0 as SM
// SM.State { ...
Model {
id: model
// ...
}
SM.SignalTransition {
targetState: nextState
signal: model.mySignal
onTriggered: console.log(customObject) // error here
}
// ... }
bekomme ich folgende Fehlermeldung: ReferenceError: customObject is not defined
. Wenn ich das Signal ausliege, übergebe ich mein customObject als Argument für das Signal.
Danke für Ihre Antwort. Ja, so mache ich es jetzt und es funktioniert perfekt, aber wie du gesagt hast ist es ein wenig hacky und hat sich gefragt, ob es eine bessere Lösung gibt. Durch dieses Beispiel: http://doc.qt.io/qt-5/qml-qtqml-statemachine-signaltransition.html#guard-prop sollte es einige funktionieren wie ich es in meiner Frage geschrieben habe, aber ich bekomme immer noch die Error. – Silex
Richtig, dann weiß ich nicht. Ich denke, für den Code, den Ihre Frage zu arbeiten, würde das ausgelöste Signal irgendwie Argumente aus dem Anrufer-Signal, die es offenbar nicht trägt? –