JavaScript non funziona in QML
Domanda
Ho il codice seguente:
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"
}
}
}
}
Voglio cambiare il Rectangle
colore quando il MouseArea
viene cliccato. Tuttavia, il codice non funziona. Dov'è colpa mia?
Soluzione
Il problema è il tuo test:
fos.color == "red"
"red"
è solo un nome o un alias per "#ff0000"
. Puoi vederlo stampando il valore, cioè:
//...
MouseArea {
anchors.fill: parent
onClicked: {
console.log('fos.color:', fos.color); // fos.color: #ff0000
//...
}
}
Secondo documentazione dovresti usare Qt.colorEqual()
o test contro "#ff0000"
per l'uguaglianza del colore.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow