J'ai un MouseArea qui appelle un signal, je branche ce signal à un emplacement et il fonctionne, mon code C++ est en cours d'exécution.QT QML changement d'état C++
Mais est-ce possible dans le code C++, changer l'état QML?
code de bouton Signal d'appel (OK):
MouseArea {
anchors.fill: parent
onClicked: {
inscriptionCarre.qmlSignalButtonInscription("Button");
}
}
Code de mes états:
states: [
State {
name: "start";
PropertyChanges { target: home; x: -master.width; }
PropertyChanges { target: login; x:0; }
},
State {
name: "loginOK";
PropertyChanges { target: login; x: -master.width; }
PropertyChanges { target: liste; x:0; }
}
]
Je voudrais dans mon emplacement (C++ code) état de changement "loginOK", c'est possible ?
Merci
Question: Je suppose que vous faites 'émettent stateChanged ("loginOK");' après 'object-> setProperty ("état", "loginOK"); Vous ne mentionnez pas comment lier le signal à l'emplacement QML. Pouvez-vous s'il vous plaît fournir l'information. J'utilise 'Connections {...}' pour connecter des signaux C++ aux slots QML mais dans ce cas cela ne déclenche pas le changement dans l'interface utilisateur (puisque dans mon cas basé sur le nouvel état l'élément change (par exemple la 'couleur 'd'un élément' Rectangle'). Le slot ne se déclenche que lorsque vous utilisez 'Connections {...}' Sinon, rien ne se passe.Toute idée? – rbaleksandar
Nevermind.J'ai réussi à le réparer.En effet, dans le dernier Qt on doit utilisez l'élément 'Connections', mais lorsque vous appelez à partir de C++, l'état de tous les éléments visibles dans la liste change.Pour éviter que l'on doive spécifier que seul' currentItem.state' doit être défini sur le nouvel état. – rbaleksandar