Встраивание QQuickWidget в макет (или в QWidget) в Python

Я использую Python и Pyside2, я пытаюсь вставить QQuickWidget внутри Qwidget или внутри Layout, но я не нашел решения. Я пытаюсь с этим кодом:

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

но QQuickWidget запускается в других окнах. Я пытаюсь использовать:

Layout.addWidget(view)

но он требует QWidget и не работает с QQuickWidget. Я нашел этот похожий вопрос (в C), но он не работает в Python: Добавление QQuickWidget в 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
    }
}

1 ответ

Решение

Проблема в том, что корневым элементом является окно, которое создаст окно, решение состоит в использовании элемента:

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
    }
}
Другие вопросы по тегам