无法锚定到不是父项或同级 QML QtQuick 的项目
Posted
技术标签:
【中文标题】无法锚定到不是父项或同级 QML QtQuick 的项目【英文标题】:Cannot anchor to an item that isn't a parent or sibling QML QtQuick 【发布时间】:2016-10-19 10:32:18 【问题描述】:我正在使用 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】: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.
正如错误消息所述:您不能锚定到除了您的父母之外的“祖先”。您也可以锚定到兄弟姐妹。但对他们的孩子,对你的孩子,对你的任何“祖父母”,叔叔或阿姨都不行;-)
【讨论】:
以上是关于无法锚定到不是父项或同级 QML QtQuick 的项目的主要内容,如果未能解决你的问题,请参考以下文章