別名サイクル
この警告カテゴリーは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 }
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.