Javascript在QML中不起作用

时间:2012-02-26 10:15:32

标签: qt qml qtquick2

我有以下代码:

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颜色。但是,代码不起作用。我的错在哪里?

1 个答案:

答案 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"进行测试,以确定颜色等级。