You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QML MapGestureArea的onRotationFinished信号如何获取旋转角度

你不需要额外获取PinchObject,onRotationFinished 信号传入的PinchEvent参数已内置旋转角度所有相关属性,直接读取参数对应字段即可。

常用角度属性说明

  • PinchEvent.angle:本次完整旋转手势从开始到结束的累计总旋转角度,单位为角度,逆时针方向为正值
  • PinchEvent.rotation:上一次手势事件回调到本次回调之间的增量旋转角度,onRotationFinished触发时该值为手势最后一步的旋转增量

基础使用示例

import QtLocation 5.15
import QtQuick 2.15

Map {
    anchors.fill: parent
    // 开启旋转手势支持
    gesture.acceptedGestures: MapGestureArea.RotationGesture

    gesture.onRotationFinished: function(event) {
        // 直接读取本次手势总旋转角度
        const totalRotate = event.angle
        console.log("本次手势总旋转角度:", totalRotate)
    }
}

累计旋转角度实现示例

如果需要同步记录目标对象的总旋转角度,可以参考以下写法:

Map {
    id: map
    anchors.fill: parent
    gesture.acceptedGestures: MapGestureArea.RotationGesture
    // 自定义属性存储地图累计旋转角度
    property real mapTotalRotation: 0

    gesture.onRotationFinished: function(event) {
        map.mapTotalRotation += event.angle
        // 可选:将角度限制在0-360度范围内
        map.mapTotalRotation = map.mapTotalRotation % 360
        console.log("地图当前总旋转角度:", map.mapTotalRotation)
    }
}

内容的提问来源于stack exchange,提问作者praHoc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:06:03