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.