2

私のqmlでは、C++コンポーネントオブジェクトを作成していますが、作成されたオブジェクトを参照する方法がわかりません。

OgreScene オブジェクトを作成する qml は次のとおりです。

MouseArea
{
    anchors.fill: parent

    function scene()
    {
        var scene = Qt.createQmlObject( "import Client.Plugin.Ogre 0.1; OgreScene{ id: pluginScene; engine: OgreEngine }", plugin );
        console.log( "qml: init scene" );
        pluginScene.init();
    }

    onClicked: scene()
}

実行すると、次のようになります。

Qt Debug: qml: init scene
Qt Warning: qrc:///client.qml:118: ReferenceError: pluginScene is not defined

これをインラインqmlに追加しました:

import Client.Plugin.Ogre 0.1; 

インポートなしではオブジェクト定義を見つけることができません。このインポートは既に qml ファイルで行われているため、インライン qml は実行元のファイルとは別のコンテキストにあるように見えます。

qml ファイルと同じコンテキストで c++ コンポーネント オブジェクトを作成するにはどうすればよいですか?

4

1 に答える 1