别名引用无效。无法找到 ID "xxx"

Invalid alias reference. Unable to find id "xxx"

以下简单的 QML 组件没有给我预期的结果:

// Square.qml
import QtQuick 2.0

Rectangle {
    property alias side: width
    height: width
}

我得到的错误是Invalid alias reference. Unable to find id "width" 我不明白为什么它找不到 width 因为我知道它在矩形内。显式添加它并赋予它一个值似乎根本没有帮助。

问题就在错误中,如果你仔细阅读的话:

Invalid alias reference. Unable to find **id** "width"

它期望 width 是当前范围内组件的 ID。没有这个id,只有一个属性.

解决方法很简单:

Rectangle {
    id: root
    property alias side: root.width
    height: width
}