Sur cette page

Cycle d'alias

Cette catégorie d'avertissement est orthographiée « [alias-cycle] » par qmllint.

La propriété alias fait partie d'un cycle d'alias

Que s'est-il passé ?

Un alias de propriété renvoie à lui-même ou à un autre alias renvoyant à lui-même.

En règle générale, un alias de propriété doit faire référence à une autre propriété, soit directement, soit indirectement en passant par une autre propriété alias.

Si un alias de propriété se référence lui-même, directement ou indirectement, il forme alors un cycle d'alias. L'avertissement indique que la propriété d'alias actuelle se trouve à l'intérieur d'un cycle d'alias ou y fait référence ; voir l'exemple.

Pourquoi est-ce un problème ?

Les instances de composants comportant des cycles d’alias ne seront pas créées lors de l’exécution : elles seront remplacées par la valeur null.

Exemple

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
}

Pour corriger cet avertissement, brisez les cycles d'alias :

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
}

© 2026 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.