このページについて

リストではないプロパティ

この警告カテゴリは、qmllint では「[non-list-property] 」と表記されます。

デフォルトの非リストプロパティに複数のオブジェクトを代入できません

何が起きたのか?

デフォルトのプロパティには複数のバインディングがありますが、そのデフォルトのプロパティ型はリスト型ではなく、1つのバインディングのみを受け入れるようになっています。

なぜ問題なのか?

最後のバインディングを除く、デフォルトプロパティへのすべてのバインディングは無視されます。これは、デフォルトプロパティをリスト型にするべきであるか、あるいは同じプロパティへのバインディングが多すぎることを示唆している可能性が高いです。

例

デフォルトの非リスト型プロパティを1つ持つコンポーネント `MyComponent ` を宣言し、そのデフォルトプロパティに3つの項目をバインドしてみましょう:

import QtQuick

Item {
    component MyComponent: QtObject {
        default property Item helloWorld
    }
    MyComponent {
        // first item bound to default property:
        Item { objectName: "first" } // will warn: Cannot assign multiple objects to a default non-list property [non-list-property]
        // second item bound to default property:
        Item { objectName: "second" } // not ok: default property was bound already
        // third item bound to default property:
        Item { objectName: "third" } // not ok: default property was bound already

        Component.onCompleted: console.log(helloWorld.objectName) // prints "third"
    }
}

この警告を解消するには、デフォルトのプロパティをリストに置き換えてください:

import QtQuick

Item {
    component MyComponent: QtObject {
        default property list<Item> helloWorld
    }
    MyComponent {
        // first item bound to default property:
        Item { objectName: "first" } // ok: binding a first item to the list
        // second item bound to default property:
        Item { objectName: "second" } // ok: binding a second item to the list
        // third item bound to default property:
        Item { objectName: "third" } // ok: binding a third item to the list
    }
}

この警告を修正するには、デフォルトのプロパティをリストにする必要がない場合は、不要なバインディングをすべて削除します:

import QtQuick

Item {
    component MyComponent: QtObject {
        default property Item helloWorld
    }
    MyComponent {
        Item { objectName: "first" } // ok: just one item bound to default property
    }
    MyComponent {
        Item { objectName: "second" } // ok: just one item bound to default property
    }
    MyComponent {
        Item { objectName: "third" } // ok: just one item bound to default property
    }
}

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