Sur cette page

QMultiObjectRegistryRef Class

Cette classe permet d'accéder, depuis du code C++, aux objets enregistrés avec le type QML « ObjectRegistry ». En savoir plus...

En-tête : #include <QMultiObjectRegistryRef>
CMake : find_package(Qt6 REQUIRED COMPONENTS QmlDesignSupport)
target_link_libraries(mytarget PRIVATE Qt6::QmlDesignSupport)
qmake : QT += qmldesignsupport
Depuis : Qt 6.12
Hérite de : QAbstractObjectRegistryRef

Propriétés

  • objects : QQmlListProperty<QObject>

Fonctions publiques

QMultiObjectRegistryRef(QObject *parent = nullptr)
QMultiObjectRegistryRef(QQmlEngine *engine, QObject *parent = nullptr)
QMultiObjectRegistryRef(QQmlEngine *engine, const QString &key, QObject *parent = nullptr)
QQmlListProperty<QObject> objects()
QList<QObject *> objectsList()

Signaux

void objectAdded(QObject *obj)
void objectRemoved(QObject *obj)
void objectsChanged()

Fonctions protégées réimplémentées

virtual bool event(QEvent *event) override

Description détaillée

Cette référence permet d'accéder à plusieurs objets enregistrés sous la même clé.

Exemple d'utilisation :

// Dans un fichier QML, enregistrez un élément qui sera créé plusieurs fois (par exemple, un délégué de répétiteur)
Repeater {
    model: 4
    Rectangle {
        id: qmlRepeaterDelegate
        propriété requise int index
        x: 50 * index
        width: 40
        height: 40
        MouseArea {
            propriété int repeaterIndex: qmlRepeaterDelegate.index
            anchors.fill : parent
            ObjectRegistry.key : "RepeatedMouseArea"
        }
    }
}

// Dans le code C++, accédez aux objets enregistrés à l’aide du moteur QML avec lequel vous avez chargé le fichier QML
auto ref = new QMultiObjectRegistryRef(engine, "RepeatedMouseArea");
const auto repeaterObjects = ref->objects();
for (auto obj : repeaterObjects) {
    connect(obj, SIGNAL(clicked(QQuickMouseEvent*)),
            this, SLOT(handleRepeaterObjectClicked()));
}

void MyClass::handleRepeaterObjectClicked()
{
    qDebug() << "Clicked rectangle index: " << sender()->property("repeaterIndex").toInt()
}

Voir également ObjectRegistry et QAbstractObjectRegistryRef::key.

Documentation sur les propriétés

[read-only] objects : QQmlListProperty<QObject>

Cette propriété fournit les objets référencés par cette instance. L'ordre des objets dans cette liste ne correspond pas nécessairement à l'ordre dans lequel ils ont été enregistrés.

Fonctions d'accès :

QQmlListProperty<QObject> objects()

Signal de notification :

void objectsChanged()

Voir également objectsList(), ObjectRegistry et AbstractObjectRegistryRef::key.

Documentation des fonctions membres

[explicit] QMultiObjectRegistryRef::QMultiObjectRegistryRef(QObject *parent = nullptr)

Construit une instance de `QMultiObjectRegistryRef` avec ` parent`.

Remarque : n'utilisez ce constructeur que si le moteur QML approprié est automatiquement déterminé pour cette instance lors de la définition de la clé. Ce n'est généralement pas le cas lors de la création d'une instance de cette classe à partir de C++. Il est recommandé d'utiliser l'un des constructeurs prenant un pointeur vers un moteur QML en paramètre.

Voir également ` qmlEngine()` et ` QAbstractObjectRegistryRef::key`.

[explicit] QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine, QObject *parent = nullptr)

Crée une instance de `QMultiObjectRegistryRef` avec les éléments QML ` engine ` et ` parent`. Tous les enregistrements sont limités au moteur QML spécifié.

Voir également QAbstractObjectRegistryRef::key.

[explicit] QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine, const QString &key, QObject *parent = nullptr)

Crée une instance de `QMultiObjectRegistryRef` à partir des éléments QML suivants : engine, key et parent. Tous les enregistrements sont limités au moteur QML spécifié.

Voir également QAbstractObjectRegistryRef::key.

[override virtual protected] bool QMultiObjectRegistryRef::event(QEvent *event)

Réimplémente : QAbstractObjectRegistryRef::event(QEvent *event).

[signal] void QMultiObjectRegistryRef::objectAdded(QObject *obj)

Ce signal est émis lorsqu'un nouvel objet, obj, a été enregistré avec la clé de cette référence.

[signal] void QMultiObjectRegistryRef::objectRemoved(QObject *obj)

Ce signal est émis lorsqu'un objet, obj, a été supprimé de l'enregistrement associé à la clé correspondant à cette référence.

QList<QObject *> QMultiObjectRegistryRef::objectsList()

Renvoie la liste des objets enregistrés correspondant à la clé de cette instance.

Il s'agit d'une méthode permettant d'obtenir la liste des objets enregistrés sous la forme d'un objet de type ` QList`.

L'ordre des objets dans cette liste n'est pas nécessairement le même que celui de leur enregistrement.

Voir également ` QAbstractObjectRegistryRef::key ` et ` objects`.

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