将minimumZoomlevel设置为QML贴图时,会超过下限阈值。
以下是基于最小映射示例的简单代码:
主要的cpp公司
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
和main。qml公司
import QtQuick 2.0
import QtQuick.Window 2.0
import QtLocation 5.6
import QtPositioning 5.6
Window {
width: 1440
height: 900
visible: true
Map {
anchors.fill: parent
plugin: Plugin {name: "osm"}
center: QtPositioning.coordinate(59.91, 10.75) // Oslo
zoomLevel: 10
minimumZoomLevel: 6 //This does not block the zoomLevel
onZoomLevelChanged: {
console.log("minimumZoomLevel : " + minimumZoomLevel + " - current zoomLevel :" + zoomLevel)
}
}
}
结果如下:
qml: minimumZoomLevel : 2.4918530963296748 - current zoomLevel :2.4918530963296748
qml: minimumZoomLevel : 2.4918530963296748 - current zoomLevel :19
因此,尽管指定了最小缩放值,但它会被覆盖,缩放范围从19到2.49,而不是19到6。
怎么了?这是Qt错误还是我误解了它的工作方式?
谢谢你的帮助。