Javascript не работает в QML - PullRequest
       14

Javascript не работает в QML

1 голос
/ 26 февраля 2012

У меня есть следующий код:

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 Ответ

5 голосов
/ 26 февраля 2012

Проблема в вашем тесте:

fos.color == "red" 

"red" - это только имя или псевдоним для "#ff0000".Вы можете увидеть это, напечатав значение, то есть:

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

В соответствии с документацией вы должны использовать Qt.colorEqual() или проверить "#ff0000" на равенство цветов.

...