別名サイクル

この警告カテゴリーはqmllintによって[alias-cycle]

エイリアスプロパティはエイリアスサイクルの一部です。

何が起こりましたか?

プロパティのエイリアスはそれ自身、またはそれ自身を解決する別のエイリアスに解決されます。

通常、プロパティのエイリアスは別のプロパティを直接参照するか、別のエイリアス・プロパティを経由して間接的に参照します。

プロパティ・エイリアスが直接または間接的にそれ自身を参照する場合、それはエイリアスサイクルを形成します。警告は、現在のエイリアス・プロパティがエイリアスサイクルの内部にあるか、エイリアスサイクルを参照していることを示します

これはなぜ悪いのでしょうか?

エイリアスサイクルを持つコンポーネントのインスタンスは実行時に作成されません。

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
}

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。