1
import QtQuick 1.0

    Rectangle 
    {
        id: sas
        width: 200
        height: 100
        color: "red"

        Text 
        {
            anchors.centerIn: parent
            text: "Hello, World!"
        }
    }

    Rectangle
    {
        id: sasas
        width: 200
        height: 100
        color: "red"

        Text 
        {
            anchors.centerIn: parent
            text: "Hello,fdsfdsf!"
        }
    }

这个,当运行时qmlviewer,说:

Syntax error 矩形 {
^

出路是什么?

4

2 回答 2

3

每个 QML 文件描述一个单独的组件,因此它必须有一个“根项”。有点类似于 XML 文档。

如果您想同时拥有两者Rectangles,只需将它们包装在一个Item { }. 因此,您定义了一个包含两个Rectangles.

(注意:由于Rectangles没有设置位置,它们实际上可能会相互重叠......)

于 2013-09-24T12:22:37.830 回答
1

问题是 qml 文件的结构。任何给定的 qml 应用程序都会有一个根项目,无论是矩形还是项目。您打算实例化的所有其他 qml 元素,无论是其他 qml 文件、更复杂的项等,都将是这一根项的子项(这显然不包括更高级的情况,例如自定义 qml 元素、上下文对象等),但对于保持简单的目的,它会是这样的

import QtQuick 1.1
Item{
    id:qml_rootItem

    height:400
    width:300



    Rectangle{
        id:redRect1
        height:100
        width:100
        color:"red" //svg named colors is awesome for the non graphically talented like me!
        anchors.verticalCenter:qml_root.verticalCenter
        anchors.right:parent.right

    }

    Rectangle{
        id:redRect2
        height:100
        width:100
        color:"red" //svg named colors is awesome for the non graphically talented like me!
        anchors.verticalCenter:qml_root.verticalCenter
        anchors.left:parent.left

    }

    MouseArea{
        anchors.fill: parent
        onReleased: Qt.quit()
    }

}

所以要点是你必须始终有一个根项目,你的 qml 的其余部分将是其子项。

于 2013-09-24T13:50:29.687 回答