Наконец-то разобрался. Встроил qml объект с картой в QWidget.
Может кому пригодится пример:
Наследуемся от QQuickView
class MapQml(QQuickView):
def __init__(self):
super().__init__()
self.setSource(QUrl('map.qml'))
map = self.findChild(QObject, 'map')
map.setProperty('lat', CUR_POINT['lat'])
map.setProperty('lon', CUR_POINT['lon'])
map.setProperty('zoom', 14)
Создаем объект MapQml и помещаем его в контейнер QWidget
map_qml = MapQml()
container = QWidget.createWindowContainer(map_qml, self)
box_map = QVBoxLayout()
box_map.addWidget(container)
И содержимое файла map.qml
import QtQuick 2.5
import QtLocation 5.6
import QtPositioning 5.6
Rectangle {
width: parent.width
height: parent.height
visible: true
Plugin {
id: mapPlugin
name: "osm"
}
Map {
objectName: "map"
property real lat: 54.0
property real lon: 54.0
property int zoom: 14
anchors.fill: parent
plugin: mapPlugin
center: QtPositioning.coordinate(lat, lon)
zoomLevel: zoom
}
}