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
相关产品推荐
相关产品推荐

