我有以下代码:
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"
}
}
}
}
我想在点击Rectangle
时更改MouseArea
颜色。但是,代码不起作用。我的错在哪里?
答案 0 :(得分:5)
问题在于你的测试:
fos.color == "red"
"red"
只是"#ff0000"
的名称或别名。您可以通过打印值来看到它,即:
//...
MouseArea {
anchors.fill: parent
onClicked: {
console.log('fos.color:', fos.color); // fos.color: #ff0000
//...
}
}
根据documentation,您应使用Qt.colorEqual()
或针对"#ff0000"
进行测试,以确定颜色等级。