我有一個C++類,並且我可以在QML中創建它。然後我在QML中有一個信號,它有一個代表這個對象的參數。我正在使用QtQml.StateMachine
,我用SignalTransition
來捕捉觸發信號。我希望能夠在觸發SignalTransition
時將我的信號參數設置爲下一個狀態。在代碼:如何在SignalTransition期間在QML StateMachine中使用Signal的參數
這是我的信號怎麼看起來像Model.qml:
signal mySignal(CustomObject customObject)
我的信號轉變代碼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
}
// ... }
我得到以下錯誤:ReferenceError: customObject is not defined
。 當我發出信號時,我傳遞了我的customObject作爲信號的參數。
感謝您的回答。是的,這就是我現在正在做的事情,它的工作原理是完美的,但正如你所說的那樣,它有點冒險,並想知道是否有更好的解決方案。通過這個例子:http://doc.qt.io/qt-5/qml-qtqml-statemachine-signaltransition.html#guard-prop它應該如何工作,因爲我在我的問題中寫道,但我仍然得到錯誤。 – Silex
對,那我不知道。我認爲你的問題的代碼工作,觸發信號會以某種方式攜帶主叫信號的參數,它顯然不是? –