为什么我无法将QML项目彼此锚定

时间:2017-01-06 19:01:33

标签: qt qml qt5 qtquick2

我有这段代码:

import QtQuick 2.7
import QtQuick.Window 2.2

Window {
    visible: true

    width: 640
    height: 480

    title: qsTr("Hello World")

    Rectangle {
        anchors.fill: parent

        Rectangle {
            id: rect1

            anchors.top: parent.top
            anchors.left: parent.left
            anchors.right: rect2.left
            anchors.bottom: parent.bottom
            color: "red"
        }

        Rectangle {
            id: rect2

            anchors.top: parent.top
            anchors.left: rect1.right
            anchors.right: parent.right
            anchors.bottom: parent.bottom
            color: "blue"
        }
    }
}

我想将两个rect锚定到另一个,以便生成以下输出:

enter image description here

为什么我的代码不这样做?我宁愿不使用布局......

1 个答案:

答案 0 :(得分:3)

问题是左侧矩形的右侧锚点设置为右侧矩形的左侧锚点,该左侧锚点设置为左侧矩形的右侧锚点。

所以你有一个var a = b = a场景,没有使用实际的具体值。

尝试将左侧矩形的宽度设置为parent.width * .5,并仅将右侧矩形固定到其上。

您必须具有一些具体值才能使用与其相关的值。在这种情况下,没有一个矩形具有有效宽度,因此无法确定它们共享边缘的位置。