QQmlListReference Class
La classe QQmlListReference permet de manipuler les propriétés de QQmlListProperty. Plus d'informations...
| 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'affecter des valeurs à une propriété de liste QML d'une manière simple et sûre. Le principal avantage par rapport à l'utilisation de QQmlListProperty est l'effacement des types : QQmlListReference n'est pas un modèle, mais peut être utilisé pour les QQmlListProperties de n'importe quel type. En outre, il surveille la suppression de l'objet propriétaire et n'autorise plus l'accès à QQmlListProperty si son propriétaire a été supprimé.
Vous pouvez créer une QQmlListReference à partir d'un objet et d'un nom de propriété ou à partir d'un QVariant. Ces deux types de références sont équivalents :
QQmlListReference ref1(object, "children"); const QVariant var = object->property("children"); QQmlListReference ref2(var);
Toutes les QQmlListReferences ne prennent pas en charge toutes les opérations. Des méthodes telles que canAppend(), canAt(), canClear() et canCount() permettent aux programmes de demander si une opération est prise en charge pour une propriété donnée. La disponibilité des méthodes dépend des méthodes mises en œuvre par le site QQmlListProperty sous-jacent. Lorsque vous construisez 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 non disponibles.
QQmlListReferenceLes fonctions d'accès à la liste sont sûres. Seules les QObjects qui dérivent de la classe de base correcte peuvent être ajoutées à la liste. La méthode listElementType() peut être utilisée pour interroger les QMetaObject du type QObject qui peuvent être ajoutés. Toute tentative d'ajout d'objets d'un type incorrect à une propriété d'une liste échouera.
Comme pour les autres listes, lorsqu'on accède à un élément de liste par un index, il incombe à l'appelant de s'assurer qu'il ne demande pas un élément hors plage. Utilisez la méthode count() avant d'appeler at() à cet effet.
Documentation des fonctions membres
QQmlListReference::QQmlListReference()
Construit une instance invalide.
[explicit, since 6.1] QQmlListReference::QQmlListReference(const QVariant &variant)
Construit une QQmlListReference à partir d'un QVariant variant contenant un QQmlListProperty. Si variant ne contient pas de propriété de liste, une QQmlListReference invalide est créée. Si l'objet possédant la propriété de liste est détruit après la construction de la référence, celle-ci devient automatiquement invalide. En d'autres termes, il n'y a aucun risque à conserver des instances de QQmlListReference 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)
Construit une QQmlListReference pour object's property. Si property n'est pas une propriété de liste, une QQmlListReference invalide est créée. Si object est détruit après la construction de la référence, celle-ci devient automatiquement invalide. En d'autres termes, il n'y a aucun risque à conserver des instances de QQmlListReference même après la suppression de object.
bool QQmlListReference::append(QObject *object) const
Ajoute object à la liste. Retourne 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 à index, ou nullptr si l'opération a échoué.
Voir aussi canAt().
bool QQmlListReference::canAppend() const
Retourne true si la propriété de la liste peut être ajoutée, sinon false. Renvoie false si la référence n'est pas valide.
Voir également append().
bool QQmlListReference::canAt() const
Retourne true si la propriété liste peut être interrogée par index, sinon false. Retourne false si la référence n'est pas valide.
Voir aussi at().
bool QQmlListReference::canClear() const
Retourne true si la propriété list peut être effacée, sinon false. Retourne false si la référence n'est pas valide.
Voir également clear().
bool QQmlListReference::canCount() const
Retourne true si la propriété list peut être interrogée sur le nombre d'éléments, sinon false. Renvoie false si la référence n'est pas valide.
Voir également count().
bool QQmlListReference::canRemoveLast() const
Retourne true si le dernier élément peut être retiré de la propriété de la liste, sinon false. Retourne false si la référence n'est pas valide.
Voir également removeLast().
bool QQmlListReference::canReplace() const
Retourne true si les éléments de la propriété list peuvent être remplacés, sinon false. Retourne false si la référence n'est pas valide.
Voir également replace().
bool QQmlListReference::clear() const
Efface la liste. Retourne 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
Retourne vrai si at(), count(), append(), et clear() ou removeLast() sont implémentés, afin que vous puissiez manipuler la liste.
Notez que replace() et removeLast() peuvent être émulés en cachant tous les éléments et en reconstruisant la liste à l'aide de clear() et append(). Ils ne sont donc pas nécessaires pour que la liste soit manipulable. En outre, clear() peut être émulé en utilisant removeLast().
Voir également isReadable(), at(), count(), append(), clear(), replace() et removeLast().
bool QQmlListReference::isReadable() const
Retourne vrai si at() et count() sont implémentés, afin que vous puissiez accéder aux éléments.
Voir aussi isManipulable(), at() et count().
bool QQmlListReference::isValid() const
Retourne true si l'instance fait référence à une propriété de liste valide, sinon false.
const QMetaObject *QQmlListReference::listElementType() const
Renvoie l'adresse QMetaObject pour les éléments stockés dans la propriété de la liste, ou nullptr si la référence n'est pas valide.
Le 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 transmis de moteur lors de la construction, il se peut que le résultat soit nullptr.
QObject *QQmlListReference::object() const
Renvoie l'objet de la propriété de la liste. Retourne nullptr si la référence n'est pas valide.
bool QQmlListReference::removeLast() const
Supprime le dernier élément de la liste. Retourne true si l'opération a réussi, sinon false.
Voir également canRemoveLast().
bool QQmlListReference::replace(qsizetype index, QObject *object) const
Remplace l'élément situé à index dans la liste par object. Retourne true si l'opération a réussi, sinon false.
Voir aussi 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 ce 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 via une affectation ou une construction de copie.
Remarque : les références au même objet créées indépendamment 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.