别名循环

别名属性是别名循环的一部分

发生了什么?

一个 属性别名 解析为自己或解析为自己解析的另一个别名。

通常,属性别名 应直接或通过另一个别名属性间接引用另一个属性。

如果一个属性别名直接或间接地引用自己,它就形成了一个别名循环。警告表示当前别名属性位于别名循环中或引用了别名循环,请参阅示例

为什么会这样?

包含别名循环的组件实例在运行时不会被创建:它们将是空的。

示例

import QtQuick

Item {
    id: someId
    property alias myself: someId.myself // not ok: referring to itself

    property alias cycle: someId.cycle2 // not ok: indirectly referring to itself
    property alias cycle2: someId.cycle

    property alias indirect: someId.cycle // not ok: referring to alias indirectly referring to itself
}

您可以通过打破别名循环来解决这个问题警告

import QtQuick

Item {
    id: someId
    Item {
        id: anotherId
        property string myself
        property int cycle
    }
    property alias myself: anotherId.myself // ok: referring to a property

    property alias cycle: someId.cycle2 // ok: does not refer to itself anymore
    property alias cycle2: anotherId.cycle // ok: not a cycle anymore

    property alias indirect: someId.cycle // ok: cycle does not form an alias cycle anymore
}

© 2024 Qt 公司 Ltd. 以下文档贡献的版权属于各自的所有者。提供的文档是根据自由软件基金会发布的GNU 自由文档许可证版本 1.3 的条款提供的。Qt 和相关标识是芬兰以及全球其他国家的 Qt 公司的独特标志。所有其他商标均为各自所有者的财产。