我在玩 KDE 的 Kirigami,想开发一个包含地图的应用程序。我使用 KDevelop 在最新的 OpenSUSE Tumbleweed 上进行开发。我从最初的“新项目”Kirigami 模板开始,并将基于 QtLocation 5.15 的地图元素添加到main.qml
. 最后,我很想使用自定义磁贴服务器。但是,但是,使用该osm
插件,它会在加载一两个图块而没有任何消息(在调试器和 CLI 中)后崩溃。但是,该mapboxgl
插件确实有效。该osm
插件与默认或自定义磁贴服务器崩溃。
Kirigami.page
inmain.qml
看起来像这样,我检查了不同的配置。
import QtQuick 2.6
import QtQuick.Controls 2.0 as Controls
import QtQuick.Layouts 1.2
import org.kde.kirigami 2.13 as Kirigami
import QtPositioning 5.15
import QtLocation 5.15
Kirigami.Page {
id: page
Layout.fillWidth: true
title: i18n("Main Page")
// working plugin
Plugin {
id: mapPlugin
name: "mapboxgl"
}
// plugin crashes
Plugin {
id: mapPluginOsm
name: "osm"
PluginParameter {
name: "osm.mapping.providersrepository.address"
value: "http://maps-redirect.qt.io/"
}
}
// plugin crashes
Plugin {
id: mapPluginOsm2
name: "osm"
PluginParameter {
name: "osm.mapping.providersrepository.disabled"
value: "true"
}
PluginParameter {
name: "osm.mapping.providersrepository.address"
value: "https://maps-redirect.qt.io/"
}
}
// plugin crashes
Plugin {
id: mapPluginOsm3
name: "osm"
PluginParameter {
name: "osm.mapping.providersrepository.disabled"
value: "true"
}
PluginParameter {
name: "osm.mapping.providersrepository.address"
value: "https://maps-redirect.qt.io/"
}
}
// plugin crashes
Plugin {
id: mapPluginOsm4
name: "osm"
}
// plugin crashes
Plugin {
id: mapPluginOwnTiles
name: "osm"
PluginParameter {
name: "osm.mapping.custom.host"
value: "own tile servers URI, working with leaflet"
}
PluginParameter {
name: "osm.mapping.providersrepository.disabled"
value: true
}
}
Map {
anchors.fill: parent
plugin: mapPluginOsm
center: QtPositioning.coordinate(52.52, 10.40)
zoomLevel: 10
activeMapType: supportedMapTypes[supportedMapTypes.length - 1]
}
}
这是 Kirigami、QtLocation 或其他什么的错误用法吗?由于调试器根本没有显示任何挂起的原因,我真的不知道如何调试。如果我只运行二进制文件,它也会挂起。如果我从 CLI 运行二进制文件,我会收到一个关于 deprecated 的警告Units.devicePixelRatio
,但工作mapboxgl
插件也是如此,所以它似乎没有连接。