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 |
- Liste de tous les membres, y compris les membres hérités
- QMultiObjectRegistryRef fait partie des classes C++ de prise en charge de la conception d'Qt Qml .
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.