代码之家  ›  专栏  ›  技术社区  ›  kontiki

映射qml:minimumZoomLevel不会将zoomlevel阻塞为低值

  •  0
  • kontiki  · 技术社区  · 6 年前

    将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错误还是我误解了它的工作方式?

    谢谢你的帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   kontiki    6 年前

    这个问题似乎与windows 7 64有关。

    此处出现错误: https://bugreports.qt.io/browse/QTBUG-66107