J'ai une classe C++ et j'ai pu le créer en QML. Ensuite, j'ai un signal en QML qui a un argument représentant cet objet. J'utilise le QtQml.StateMachine
et j'attrape des signaux déclenchés avec SignalTransition
. Je veux être en mesure de définir mon argument signaux à l'état suivant lorsque le SignalTransition
se déclenche. Dans le code:Comment utiliser l'argument d'un Signal dans QML StateMachine lors de SignalTransition
Voici comment mon signal ressemble à Model.qml:
signal mySignal(CustomObject customObject)
Mon signal de code de transition en 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
}
// ... }
Je reçois l'erreur suivante: ReferenceError: customObject is not defined
. Lorsque j'émets le signal, je passe mon customObject comme argument pour le signal.
Merci pour votre réponse. Oui, c'est comme ça que je le fais en ce moment et ça fonctionne parfaitement, mais comme vous l'avez dit, c'est un peu hacky et je me demandais s'il y avait une meilleure solution. Par cet exemple: http://doc.qt.io/qt-5/qml-qtqml-statemachine-signaltransition.html#guard-prop il devrait un peu comment fonctionne comme je l'ai écrit dans ma question, mais je reçois toujours le Erreur. – Silex
Bon, alors je ne sais pas. Je pense que pour le code de votre question à travailler, le signal déclenché aurait en quelque sorte porter des arguments du signal de l'appelant, ce qui ne semble pas? –