无法锚定到不是父项或兄弟QML QtQuick的项目

时间:2016-10-19 10:32:19

标签: qt qml qtquick2

我正在使用QML开发一个python桌面应用程序。

我的QML文件中有这个:

SplitView {
    anchors.fill: parent
    orientation: Qt.Horizontal
    Rectangle {
        color: "#272822"
        id: cameraRectangle
        width: window.width / 2
        Item {
           //more stuff
        }
        Item {
            Rectangle {
                anchors.top: cameraRectangle.bottom
            }
        }
    }
    Rectangle {
      //Rectangle info.
    }
}

我收到错误“QML矩形:无法锚定到不是父项或兄弟项目的项目。”在我正在做anchors.top的行:cameraRectangle.bottom。我会假设外部矩形是内部矩形的父级吗?

我在网上搜索过:http://doc.qt.io/qt-5/qtquick-visualcanvas-visualparent.html他们似乎没有做任何不同的事情?

可能是我正在使用的QtQuick版本吗?

导入如下:

import QtQuick 2.6
import QtQuick.Controls 2.0
import QtQuick.Controls 1.4
import QtQuick.Controls.Material 2.0
import QtQuick.Window 2.0

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

SplitView {
    anchors.fill: parent
    orientation: Qt.Horizontal
    Rectangle {
        color: "#272822"
        id: cameraRectangle
        width: window.width / 2
        Item {
           //more stuff
        }
        Item {
            // The parent of this Item is 'cameraRectangle'
            // This Item will be the parent of the Rectangle
            // therefore the Rectangle can't anchor to the 'cameraRectangle'
            // anymore. As you are not doing anything with this Item
            // (so far?) anway, you can just delete it, and everything
            // will be fine.
            Rectangle {
                // The parent of this Rectangle is the Item that wraps it
                // and not the 'cameraRectangle'.
                anchors.top: cameraRectangle.bottom
            }
        }
    }
    Rectangle {
      //Rectangle info.
    }
}

正如错误消息所述:您不能锚定到父母以外的“祖先”。你也可以锚定兄弟姐妹。但不是他们的孩子,也不是你的孩子,也不是你的任何“祖父母”,叔叔或阿姨; - )