在 Python 中的布局(或 QWidget)中嵌入 QQuickWidget

Embedding a QQuickWidget in a Layout (or in a QWidget) in Python

我使用 Python 和 Pyside2,我尝试在 Qwidget 或 Layout 中插入 QQuickWidget,但我没有找到解决方案。 我尝试使用此代码:

view = QQuickWidget()
view.setSource(QUrl.fromLocalFile("main.qml"))

但 QQuickWidget 在另一个 windows 中启动。 我尝试使用:

Layout.addWidget(view)

但它需要 QWidget,并且不能与 QQuickWidget 一起使用。 我发现了这个类似的问题(在 C 中),但它在 Python 中不起作用: Adding QQuickWidget in QStackedWidget

我试过QQmlApplicationEngine和QQuickView,但是有一些问题。

你能帮帮我吗?

编辑: main.qml 文件是:

import QtQuick 2.0
import QtQuick.Window 2.0
import QtLocation 5.6
import QtPositioning 5.6

Window {
    width: 300
    height: 300
    visible: true

    Plugin {
        id: mapPlugin
        name: "esri"
    }

    Map {
        anchors.fill: parent
        plugin: mapPlugin
        center: QtPositioning.coordinate(39.2160, 9.1344)
        zoomLevel: 16
    }
}

问题是根元素是一个Window会创建一个window,解决方法是使用一个Item:

import QtQuick 2.0
import QtLocation 5.6
import QtPositioning 5.6

Item {
    width: 300
    height: 300

    Plugin {
        id: mapPlugin
        name: "esri"
    }

    Map {
        anchors.fill: parent
        plugin: mapPlugin
        center: QtPositioning.coordinate(39.2160, 9.1344)
        zoomLevel: 16
    }
}