QMultiObjectRegistryRef Class
이 클래스는 C++ 코드에서 ObjectRegistry QML 유형으로 등록된 객체에 접근하는 데 사용됩니다. 더 보기...
| 헤더: | #include <QMultiObjectRegistryRef> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS QmlDesignSupport) target_link_libraries(mytarget PRIVATE Qt6::QmlDesignSupport) |
| qmake: | QT += qmldesignsupport |
| 다음부터: | Qt 6.12 |
| 상속: | QAbstractObjectRegistryRef |
- 상속된 멤버를 포함한 모든 멤버 목록
- QMultiObjectRegistryRef는 ‘Qt Qml ’ 디자인 지원 C++ 클래스의 일부입니다.
속성
- objects : QQmlListProperty<QObject>
공개 함수
| 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() |
신호
| void | objectAdded(QObject *obj) |
| void | objectRemoved(QObject *obj) |
| void | objectsChanged() |
재구현된 보호 함수
| virtual bool | event(QEvent *event) override |
상세 설명
동일한 키로 등록된 여러 객체에 이 참조를 통해 접근할 수 있습니다.
사용 예시:
// QML 파일에서 여러 번 생성되는 객체(예: 리피터 델리게이트)를 등록합니다.
Repeater {
model: 4
Rectangle {
id: qmlRepeaterDelegate
required property int index
x: 50 * index
width: 40
height: 40
MouseArea {
property int repeaterIndex: qmlRepeaterDelegate.index
anchors.fill: parent
ObjectRegistry.key: "RepeatedMouseArea"
}
}
}
// C++ 코드에서, QML을 로드할 때 사용한 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()
}ObjectRegistry 및 QAbstractObjectRegistryRef::key도 참조하십시오 .
속성 설명서
[read-only] objects : QQmlListProperty<QObject>
이 속성은 이 인스턴스가 참조하는 객체들을 제공합니다. 이 목록에 포함된 객체들의 순서가 등록 순서와 일치한다고 보장되지는 않습니다.
액세스 함수:
| QQmlListProperty<QObject> | objects() |
알림 신호:
| void | objectsChanged() |
objectsList(), ObjectRegistry 및 AbstractObjectRegistryRef::key도 참조하십시오 .
멤버 함수 문서
[explicit] QMultiObjectRegistryRef::QMultiObjectRegistryRef(QObject *parent = nullptr)
parent 를 사용하여 QMultiObjectRegistryRef 인스턴스를 생성합니다.
참고: 키가 설정될 때 이 인스턴스에 대해 올바른 QML 엔진이 자동으로 해결되는 경우에만 이 생성자를사용하십시오 . C++에서 이 클래스의 인스턴스를 생성할 때는 일반적으로 그렇지 않습니다. QML 엔진 포인터를 매개변수로 받는 생성자 중 하나를 사용하는 것이 좋습니다.
qmlEngine() 및 QAbstractObjectRegistryRef::key도 참조하십시오 .
[explicit] QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine, QObject *parent = nullptr)
QML engine 및 parent 를 사용하여 QMultiObjectRegistryRef 인스턴스를 생성합니다. 모든 등록은 지정된 QML 엔진에 국한됩니다.
QAbstractObjectRegistryRef::key도 참조하십시오 .
[explicit] QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine, const QString &key, QObject *parent = nullptr)
QML engine, key 및 parent 를 사용하여 QMultiObjectRegistryRef 인스턴스를 생성합니다. 모든 등록은 지정된 QML 엔진에 국한됩니다.
QAbstractObjectRegistryRef::key도 참조하십시오 .
[override virtual protected] bool QMultiObjectRegistryRef::event(QEvent *event)
QAbstractObjectRegistryRef::event(QEvent *event)를 재구현합니다.
[signal] void QMultiObjectRegistryRef::objectAdded(QObject *obj)
이 신호는 새로운 객체( obj)가 이 참조의 키에 등록되었을 때 발생합니다.
[signal] void QMultiObjectRegistryRef::objectRemoved(QObject *obj)
이 신호는 객체 obj 의 등록 정보가 이 참조의 키를 사용하여 제거되었을 때 발생합니다.
QList<QObject *> QMultiObjectRegistryRef::objectsList()
이 인스턴스의 키와 일치하는 등록된 객체 목록을 반환합니다.
이 메서드는 등록된 객체 목록을 ` QList` 형식으로 반환합니다.
이 목록에 포함된 객체들의 순서가 등록 순서와 일치한다고 보장되지는 않습니다.
QAbstractObjectRegistryRef::key 및 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.