Sur cette page

QQmlListReference Class

La classe QQmlListReference permet de manipuler les propriétés d'QQmlListProperty. En savoir plus...

En-tête : #include <QQmlListReference>
CMake : find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake : QT += qml

Fonctions publiques

QQmlListReference()
(since 6.1) QQmlListReference(const QVariant &variant)
QQmlListReference(QObject *object, const char *property)
bool append(QObject *object) const
QObject *at(qsizetype index) const
bool canAppend() const
bool canAt() const
bool canClear() const
bool canCount() const
bool canRemoveLast() const
bool canReplace() const
bool clear() const
qsizetype count() const
bool isManipulable() const
bool isReadable() const
bool isValid() const
const QMetaObject *listElementType() const
QObject *object() const
bool removeLast() const
bool replace(qsizetype index, QObject *object) const
(since 6.2) qsizetype size() const
bool operator==(const QQmlListReference &other) const

Description détaillée

QQmlListReference permet aux programmes C++ de lire et d’attribuer des valeurs à une propriété de liste QML de manière simple et sans risque de type. Son principal avantage par rapport à l'utilisation directe de ` QQmlListProperty ` réside dans l'effacement de type : `QQmlListReference` n'est pas un modèle, mais peut être utilisée pour des `QQmlListProperties` de n'importe quel type. De plus, elle surveille la suppression de l'objet propriétaire et empêche tout accès à l'QQmlListProperty si celui-ci a été supprimé.

Vous pouvez créer une QQmlListReference à partir soit d’un objet et d’un nom de propriété, soit d’une QVariant. Ces deux méthodes sont équivalentes :

QQmlListReference ref1(object, "children");

const QVariant var = object->property("children");
QQmlListReference ref2(var);

Toutes les instances de `QQmlListReference` ne prennent pas en charge toutes les opérations. Des méthodes telles que ` canAppend()`, ` canAt()`, ` canClear()` et ` canCount()` permettent aux programmes de vérifier si une opération est prise en charge sur une propriété donnée. La disponibilité de ces méthodes dépend des méthodes implémentées par l’ QQmlListProperty sous-jacente. Lors de la construction d’une QQmlListProperty en passant manuellement les fonctions d’accès, vous pouvez restreindre l’accès à la liste en passant nullptr à certaines d’entre elles. QQmlListReference les reconnaîtra et les signalera comme indisponibles.

QQmlListReferenceLes listes sont sécurisées au niveau des types. Seuls les objets ` QObject` dérivés de la classe de base appropriée peuvent être ajoutés à la liste. La méthode ` listElementType()` permet de vérifier l’ QMetaObject s du type ` QObject ` pouvant être ajoutés. Toute tentative d’ajout d’objets d’un type incorrect à une propriété de liste échouera.

Comme pour les autres listes, lors de l’accès à un élément de la liste par index, il incombe à l’appelant de s’assurer qu’il ne demande pas un élément hors de la plage autorisée. À cet effet, utilisez la méthode ` count()` avant d’appeler ` at()`.

Documentation des fonctions membres

QQmlListReference::QQmlListReference()

Crée une instance non valide.

[explicit, since 6.1] QQmlListReference::QQmlListReference(const QVariant &variant)

Construit un objet `QQmlListReference` à partir d’un ` QVariant ` variant contenant un ` QQmlListProperty`. Si ` variant ` ne contient pas de propriété `list`, un objet `QQmlListReference` non valide est créé. Si l’objet possédant la propriété `list` est détruit après la construction de la référence, celle-ci deviendra automatiquement non valide. Autrement dit, il est possible de conserver des instances de `QQmlListReference` en toute sécurité, même après la suppression de l’objet.

Cette fonction a été introduite dans Qt 6.1.

QQmlListReference::QQmlListReference(QObject *object, const char *property)

Crée une instance de `QQmlListReference` pour la propriété ` property` de ` object`. Si ` property ` n'est pas une propriété de liste, une instance `QQmlListReference` non valide est créée. Si ` object ` est détruit après la création de la référence, celle-ci deviendra automatiquement invalide. Autrement dit, il est possible de conserver en toute sécurité des instances de `QQmlListReference` même après la suppression de ` object `.

bool QQmlListReference::append(QObject *object) const

Ajoute object à la liste. Renvoie « true » si l'opération a réussi, sinon « false ».

Voir aussi canAppend().

QObject *QQmlListReference::at(qsizetype index) const

Renvoie l'élément de la liste à l'adresse index, ou nullptr si l'opération a échoué.

Voir également canAt().

bool QQmlListReference::canAppend() const

Renvoie « true » si la propriété de la liste peut être complétée, sinon « false ». Renvoie « false » si la référence n'est pas valide.

Voir aussi append().

bool QQmlListReference::canAt() const

Renvoie « true » si la propriété de liste peut être interrogée par index, sinon « false ». Renvoie « false » si la référence n'est pas valide.

Voir aussi at().

bool QQmlListReference::canClear() const

Renvoie « true » si la propriété « list » peut être vidée, sinon « false ». Renvoie « false » si la référence n'est pas valide.

Voir aussi clear().

bool QQmlListReference::canCount() const

Renvoie « true » si le nombre d'éléments de la propriété « list » peut être obtenu, sinon « false ». Renvoie « false » si la référence n'est pas valide.

Voir également count().

bool QQmlListReference::canRemoveLast() const

Renvoie « true » si le dernier élément peut être supprimé de la propriété « list », sinon « false ». Renvoie « false » si la référence n'est pas valide.

Voir aussi removeLast().

bool QQmlListReference::canReplace() const

Renvoie « true » si les éléments de la propriété « list » peuvent être remplacés, sinon « false ». Renvoie « false » si la référence n'est pas valide.

Voir aussi replace().

bool QQmlListReference::clear() const

Efface la liste. Renvoie « true » si l'opération a réussi, sinon « false ».

Voir aussi canClear().

qsizetype QQmlListReference::count() const

Renvoie le nombre d'éléments de la liste, ou 0 si l'opération a échoué.

bool QQmlListReference::isManipulable() const

Renvoie « true » si les méthodes at(), count(), append() et soit clear(), soit removeLast() sont implémentées, ce qui vous permet de manipuler la liste.

Notez que les méthodes replace() et removeLast() peuvent être émulées en enregistrant tous les éléments puis en reconstruisant la liste à l’aide de clear() et append(). Elles ne sont donc pas indispensables pour pouvoir manipuler la liste. De plus, la méthode clear() peut être émulée à l’aide de removeLast().

Voir également isReadable(), at(), count(), append(), clear(), replace() et removeLast().

bool QQmlListReference::isReadable() const

Renvoie « true » si les méthodes at() et count() sont implémentées, ce qui vous permet d'accéder aux éléments.

Voir également isManipulable(), at() et count().

bool QQmlListReference::isValid() const

Renvoie « true » si l'instance fait référence à une propriété de liste valide, sinon « false ».

const QMetaObject *QQmlListReference::listElementType() const

Renvoie l'QMetaObject pour les éléments stockés dans la propriété « list », ou « nullptr » si la référence n'est pas valide.

L'QMetaObject peut être utilisé à l'avance pour déterminer si une instance donnée peut être ajoutée à une liste. Si vous n'avez pas passé de moteur lors de la construction, cette fonction peut renvoyer nullptr.

QObject *QQmlListReference::object() const

Renvoie l'objet de la propriété « list ». Renvoie « nullptr » si la référence n'est pas valide.

bool QQmlListReference::removeLast() const

Supprime le dernier élément de la liste. Renvoie « true » si l'opération a réussi, sinon « false ».

Voir aussi canRemoveLast().

bool QQmlListReference::replace(qsizetype index, QObject *object) const

Remplace l'élément de la liste situé à l'adresse index par object. Renvoie « true » si l'opération a réussi, sinon « false ».

Voir également canReplace().

[since 6.2] qsizetype QQmlListReference::size() const

Renvoie le nombre d'éléments de la liste, ou 0 si l'opération a échoué.

Cette fonction a été introduite dans Qt 6.2.

bool QQmlListReference::operator==(const QQmlListReference &other) const

Compare cet objet QQmlListReference à other et renvoie true s'ils sont égaux. Les deux ne sont considérés comme égaux que si l'un a été créé à partir de l'autre par une affectation par copie ou une construction par copie.

Remarque : les références crééesindépendamment et pointant vers le même objet ne sont pas considérées comme égales.

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