Qt 如何将QML映射添加到QGraphics场景?

Qt 如何将QML映射添加到QGraphics场景?,qt,qml,qgraphicsscene,qquickview,qquickwidget,Qt,Qml,Qgraphicsscene,Qquickview,Qquickwidget,该应用程序具有QGraphicsView(mpscene)和QGraphicsView(mpGraphicsView)我正在尝试将qml地图对象添加到QGraphicsView(mpscene)中,但地图视图像弹出窗口一样单独出现。如何将此地图添加到qgraphicsecene(mpscene) 以下是我在其他帖子中建议的几种方法 方法1 方法2 在PlaneTrack.qml文件窗口中有一个容器,我将其更改为项目。 下面的代码将qml添加到图形场景中 PlaneTrack *blr2b

该应用程序具有
QGraphicsView(mpscene)
QGraphicsView(mpGraphicsView)
我正在尝试将qml地图对象添加到
QGraphicsView(mpscene)
中,但地图视图像弹出窗口一样单独出现。如何将此地图添加到
qgraphicsecene(mpscene)

以下是我在其他帖子中建议的几种方法

方法1

方法2


PlaneTrack.qml文件窗口中有一个容器,我将其更改为项目。 下面的代码将qml添加到图形场景中

    PlaneTrack *blr2bgm = new PlaneTrack; // cpp class object data interact

    QQuickWidget *view = new QQuickWidget();
    view->rootContext()->setContextProperty("blr2bgm",blr2bgm);
    view->setSource(QUrl(QStringLiteral("qrc:/PlaneTrack.qml")));
    view->setMinimumSize(300, 300);
    view->setResizeMode(QQuickWidget::SizeRootObjectToView);

    mpScene->addWidget(view); // adding to Graphic scene 

请出示你的护照。qml@eyllanesc与planespotter Qt示例相同我使用planespotter Qt示例qml代码将其添加到场景。@eyllanesc是否将qml文件加载到图形场景取决于qml文件?我已完成测试,首先,如果您得到两个窗口,可能是因为qml的根是一个窗口或应用程序窗口,如果是,请将其更改为Item,另一方面,我已经看到,不可能嵌入GraphicScene,因为GraphicScene无法渲染,例如,在一次测试中,我让QML显示了自己,并且在将时间T添加到场景后,它没有正确渲染。
 PlaneTrack *blr2bgm = new PlaneTrack; //Cpp object set to root context
 QQuickView *view = new QQuickView();
 view->rootContext()->setContextProperty("blr2bgm",blr2bgm);
 view->setSource(QUrl(QStringLiteral("qrc:/PlaneTrack.qml")));
 view->setResizeMode(QQuickView::SizeRootObjectToView);
 QWidget *container = QWidget::createWindowContainer(view);
 container->setMinimumSize(view->size());
 container->setFocusPolicy(Qt::TabFocus);
 mpScene->addWidget(container);
    PlaneTrack *blr2bgm = new PlaneTrack; // cpp class object data interact

    QQuickWidget *view = new QQuickWidget();
    view->rootContext()->setContextProperty("blr2bgm",blr2bgm);
    view->setSource(QUrl(QStringLiteral("qrc:/PlaneTrack.qml")));
    view->setMinimumSize(300, 300);
    view->setResizeMode(QQuickWidget::SizeRootObjectToView);

    mpScene->addWidget(view); // adding to Graphic scene