Sur cette page

Réutilisation de la propriété attachée

Cette catégorie d'avertissement est orthographiée [attached-property-reuse] par qmllint.

Utilisation d'un type attaché déjà initialisé dans une portée parentale

Qu'est-ce qui s'est passé ?

Vous avez initialisé plusieurs fois un type attaché qui se propage.

Note : Ceci se produit principalement pour les types attachés qui héritent de QQuickAttachedPropertyPropagator.

Pourquoi est-ce mauvais ?

Les objets attachés qui se propagent consomment de la mémoire à chaque instanciation mais ne doivent être initialisés qu'une seule fois.

Exemple

import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Material // contains the Material attached type

T.ToolBar {
    id: control

    // first instantiation of Material's attached property
    property color c: Material.toolBarColor

    background: Rectangle {
         // second instantiation of Material's attached property, wrong!
        color: Material.toolBarColor
    }
}

Pour corriger cet avertissement, interrogez le type attaché à partir du parent :

import QtQuick
import QtQuick.Templates as T
import QtQuick.Controls.Material // contains the Material attached type

T.ToolBar {
    id: control

    // first instantiation of Material's attached property
    property color c: Material.toolBarColor

    background: Rectangle {
        // use control's attached property, correct!
        color: control.Material.toolBarColor
    }
}

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