1

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

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

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

Layout.addWidget(view)

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

我已经尝试过 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
    }
}
4

1 回答 1

2

问题是根元素是一个将创建一个窗口的窗口,解决方案是使用一个项目:

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
    }
}
于 2019-01-09T21:41:07.737 回答