Qml项目无法编译,错误“预期令牌`,”

Mar*_*óňa 1 qt qml qt5

基于Qt 5.3.1(MSVC 2010,32位)的Qt Creator3.1.2。Project已导入QmlProject 2.0。这是我的程序中出现此错误的地方。该程序来自教程,对他有用。.so我不确定那里是什么问题。

import QtQuick 2.0

Rectangle {
    id: rootTangle
    width: 360
    height: 360
    color: "red"
    hoverEnabled: true;


    Rectangle {
        id: blueRec
        color:  "blue"
        //opacity:    .50
        width: rootTangle.width/2
        height: rootTangle.width/6
        anchors.centerIn: rootTangle
        border.color: "black"
        border.width: 7
        rotation: 180
        radius: 20
        gradient: Gradient {
                GradientStop { position: 0.0; color: "#b0c5de" }
                GradientStop { position: 1.0; color: "blue" }
        }
    }

    Text {
        id: nazdarTxt
        anchors.centerIn: blueRec
        text: "Nazdar"
        clip: false
        visible: true
        font.family: "Times New Roman"
        font.bold: true
        //font.pixelSize: Math.round(blueRec.height/3)
        width: blueRec.width
        //wrapMode: Text.WordWrap

    }

    MouseArea {
        id: blueRecMouseArea
        hoverEnabled: true;
        onEntered: {
            blueRec.color: "brown"
        }

        anchors.rightMargin: 0
        anchors.bottomMargin: 0
        anchors.leftMargin: 1
        anchors.topMargin: 0
        anchors.fill: blueRec
        onClicked: {
            Qt.quit();

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

错误在第46行: onEntered: { blueRec.color: "brown" }

fxa*_*xam 5

问题是颜色后冒号:

onEntered: {
    blueRec.color: "brown"
}
Run Code Online (Sandbox Code Playgroud)

您应该更改为等号:

onEntered: {
    blueRec.color = "brown"
}
Run Code Online (Sandbox Code Playgroud)

另外,Rectangle中没有hoverEnabled,因此您需要删除或注释它:

Rectangle {
    id: rootTangle
    width: 360
    height: 360
    color: "red"
    //hoverEnabled: true;
Run Code Online (Sandbox Code Playgroud)

而且,由于您已经为blueRec定义了Gradient因此更改其颜色无效,您应该改为更改渐变颜色:

onEntered: {
  blueRec.gradient.stops[0].color = "brown"
  blueRec.gradient.stops[1].color = "white"
}
Run Code Online (Sandbox Code Playgroud)