このページでは

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

プロパティ

  • 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 propertyintindex
        x:50 *index
        width:40
        height:40
        MouseArea {
            propertyintrepeaterIndex: qmlRepeaterDelegate.index
            anchors.fill: parent
            ObjectRegistry.key:"RepeatedMouseArea"
        }
    }
}

// C++ コード内で、QML を読み込んだ QML エンジンを使用して、登録されたオブジェクトを参照します
autoref= newQMultiObjectRegistryRef(engine, "RepeatedMouseArea");
const autorepeaterObjects= ref->objects();
for(autoobj : repeaterObjects) {
    connect(obj,SIGNAL(clicked(QQuickMouseEvent*)),
            this,SLOT(handleRepeaterObjectClicked()));
}

voidMyClass::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.