C++ で記述された既存の QT プロジェクトがあり、既存の UI に mapViewer サンプル プロジェクトのようなものを追加したいと考えています。mapViewer をインスタンス化する方法と、それを初期化/表示するメソッドを呼び出す方法がわかりません。オンライン ヘルプに続いて、UI 要素に追加できる QQuickWidget を返す以下の関数を考え出しました。作成されたコンポーネントの準備ができていないというエラーが発生し続けるため、関数は機能しません。
QQuickWidget *buildMap(QWidget *parent)
{
QQmlEngine *engine = new QQmlEngine;
QQmlComponent component(engine, "qrc://mapviewer.qml");
QObject *object = component.create();
QMetaObject::invokeMethod(object, "initializeMap");
QQuickWidget *map = new QQuickWidget(engine, parent);
return map;
}
mapViewer コンポーネントを使用してオブジェクトを作成し、それを単に忘れているということは、あまり意味がありませんが、オンラインで見つけた例には、これに似たフローがあります。