我有一个应用程序,它在 Ui 的不同选项卡中有一些模块。在其中一个选项卡中,我有一个verticalLayout (map_verticalLayout),我想在这个布局中添加一个QQuickView (mapView)。在 mainwindow.cpp 的构造函数中,我使用了以下代码:
...
QQuickView* mapView = new QQuickView();
QWidget *mapWidget = QWidget::createWindowContainer(mapView, this);
ui->map_verticalLayout->addWidget(mapWidget);
mapView->engine()->rootContext()->setContextProperty("loc", NodesMap::getInstance());
mapView->setSource(QUrl(QStringLiteral("qrc:/map/main.qml")));
mapView->setResizeMode(QQuickView::SizeRootObjectToView);
...
当 main.qml 中没有繁重的处理时,上面的代码运行良好。但在某些情况下,main.qml 中存在巨大延迟(因为地图上的点数较多),这会导致主窗口冻结。现在我想在另一个线程中运行我的 QQuickView (mapView) 或 main.qml 处理。我在enter link description here和enter link description here中看到了类似的问题,但这些问题与我的几乎不同,他们的答案并不能解决我的问题。解决办法是什么?