首页 文章

Javascript在QML中不起作用

提问于
浏览
1

我有以下代码:

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"
            }
        }
    }
}

我想在单击 MouseArea 时更改 Rectangle 颜色 . 但是,代码不起作用 . 我的错在哪里?

1 回答

  • 5

    问题是你的测试:

    fos.color == "red"
    

    "red" 只是 "#ff0000" 的名称或别名 . 您可以通过打印值来看到它,即:

    //...
    MouseArea {
        anchors.fill: parent
        onClicked: {
            console.log('fos.color:', fos.color); // fos.color: #ff0000
            //...
        }
    }
    

    根据documentation,你应该使用 Qt.colorEqual() 或测试 "#ff0000" 以获得颜色相等 .

相关问题