- Qt 6.12
- Qt Qml
- Qt Qml Tooling
- qmllint
- QML Lint Warning and Errors
- Attached property reuse
- Qt 6.12.0 Reference Documentation

Alias cycle ◦ Comma

# Attached property reuse

This warning category is spelled `[attached-property-reuse]` by qmllint.

## Using attached type already initialized in a parent scope

### What happened?

You initialized a propagating attached type multiple times.

Note: This mostly happens for attached types that inherit from QQuickAttachedPropertyPropagator.

### Why is this bad?

Propagating attached objects consume memory for each instantiation but only need to be initialized once.

### Example

     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
         }
     }

To fix this warning, query the attached type from the 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
         }
     }

Alias cycle ◦ Comma