Javascript ne fonctionne pas en QML
Question
J'ai le code suivant:
Item {
width: fos.width; height: fos.height
Rectangle {
id: fos
width: 120; height: 120
color: "red"
MouseArea {
anchors.fill: parent
onClicked: {
if (fos.color == "red") fos.color = "gray"
else fos.color = "red"
}
}
}
}
Je veux changer la Rectangle
de couleur lorsque l' MouseArea
est cliqué.Cependant, le code ne fonctionne pas.Où est ma faute?
La solution
Le problème, c'est votre test:
fos.color == "red"
"red"
n'est qu'un nom ou alias pour "#ff0000"
.Vous pouvez le voir par l'impression de la valeur, c'est à dire:
//...
MouseArea {
anchors.fill: parent
onClicked: {
console.log('fos.color:', fos.color); // fos.color: #ff0000
//...
}
}
Selon la documentation vous devez utiliser Qt.colorEqual()
ou test contre "#ff0000"
pour la couleur de l'égalité.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow