Sur cette page

list QML Value Type

une liste d'objets QML. En savoir plus...

Description détaillée

Le type « list » fait référence à une liste d'objets ou de valeurs QML.

Les propriétés de type « list » sont vides par défaut.

Un list peut stocker des objets QML ou des valeurs de type « value ».

Lors de l'intégration avec C++, notez que toute valeur de type « QQmlListProperty » transmise à QML depuis C++ est automatiquement convertie en une valeur de type « list », et inversement.

De même, toute QList<T> d’un type de valeur enregistré T est automatiquement convertie en valeur list, et inversement.

Utilisation du type « list »

Par exemple, le type Item dispose d'une propriété de type liste states à laquelle on peut attribuer des éléments et qu'on peut utiliser comme suit :

import QtQuick

Item {
    width: 100; height: 100

    states: [
        State { name: "activated" },
        State { name: "deactivated" }
    ]

    Component.onCompleted: {
        console.log("Name of first state:", states[0].name)
        for (var i = 0; i < states.length; i++)
            console.log("state", i, states[i].name)
    }
}

Les objets State définis seront ajoutés à la liste states dans l'ordre dans lequel ils ont été définis.

Si la liste ne contient qu’un seul objet, les crochets peuvent être omis :

import QtQuick

Item {
    width: 100; height: 100
    states: State { name: "activated" }
}

Vous pouvez également déclarer vos propres propriétés de liste en QML :

import QtQml

QtObject {
    property list<int> intList: [1, 2, 3, 4]
    property list<QtObject> objectList
}

Les listes s’utilisent de manière très similaire aux tableaux JavaScript. Par exemple :

  • Les valeurs sont attribuées à l'aide de la syntaxe « [] » entre crochets, avec des valeurs séparées par des virgules
  • La propriété ` length ` indique le nombre d'éléments de la liste
  • On accède aux valeurs de la liste à l'aide de la syntaxe ` [index] `
  • Vous pouvez utiliser ` push() ` pour ajouter des éléments
  • Vous pouvez définir la propriété ` length ` de la liste pour la tronquer ou l'étendre.

Cependant, vous ne pouvez pas étendre automatiquement la liste en affectant une valeur à un index actuellement hors de la plage. De plus, si vous insérez des valeurs de type ` null ` dans une liste d’objets, celles-ci sont converties en entrées de type ` nullptr ` dans l’ QQmlListProperty sous-jacente.

Une liste de types de valeurs diffère d’un tableau JavaScript sur un autre aspect important : l’agrandir en définissant sa longueur ne produit pas d’entrées indéfinies, mais plutôt des instances construites par défaut du type de valeur.

De même, agrandir une liste de types d’objets de cette manière produit des entrées « null », plutôt que des entrées « undefined ».

Ce type de valeur est fourni par le langage QML.

Voir également Types de valeurs QML.

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