qml(Qt Quick) 之 PinchArea 笔记

简介
PinchArea 是一个不可见的组件,通常将它与实际能看见的组件联合使用,为该组件提供捏拉手势处理(缩放、移动)。注:PinchArea从Qt 5.5才开始支持捏拉手势处理,并且需要你运行程序的设备可以使用多点触摸。
学习背景
安卓端需要加载地图(一些二维数据绘制成的地图),并且能对地图进行缩放、平移操作。
绑定需要捏拉组件的两种方式
  • 第一种。使用pinch.target进行绑定
  • 第二种。自己处理PinchArea的三个信号pinchStarted() 、pinchUpdated()、pinchFinished(),如果不处理,可以使用上面一种绑定target的方式,PinchArea会自动帮你处理这三个信号。处理信号的方法。e.g:
    • onPinchStarted: {
      // TO DO
      }

参数介绍

  • enable true是默认值,表示启用PinchArea

可以通过使用"pinch.XXX"来设置PinchArea的属性,pinch引用源码中的介绍如下:
pinch provides a convenient way to make an item react to pinch gestures.

  • pinch.target:绑定需要进行捏拉操作的组件id
  • pinch.active:(只读[bool])所绑定的target是否正在被拖拽
  • pinch.minimumScale:限制缩放的最小倍率(如果是第二种绑定方式,则该参数无用)
  • pinch.maximumScale:限制缩放的最大倍率(法二则无用)
  • pinch.minimumRotation:限制旋转的最小角度 min = -180 (法二则无用)
  • pinch.maximumRotation:限制旋转的最大角度 max = 180 (法二则无用)
  • pinch.dragAxis:限制能否拖拽和拖拽方式。(缩放动作执行后才能进行该操作)
    • Pinch.XAxis(只沿x轴移动)
    • Pinch.YAxis(只沿y轴移动)
    • Pinch.XAndYAxis(x,y轴都可以)
    • Pinch.NoDrag(禁止移动)
  • pinch.minimumX:限制沿x轴移动的最小坐标
  • pinch.maximumX:限制沿x轴移动的最大坐标
  • pinch.minimumY:限制沿y轴移动的最小坐标
  • pinch.maximumY:限制沿Y轴移动的最小坐标

使用绑定的第二种方式

需要用户根据PinchEvent对象中的值,对目标组件的属性进行相应的更改。注:PinchEvent内置了一个对象,pinch,可通过"pinch.XX"访问属性。以下属性只能在处理信号的时候使用。

  • center:(只读[QPointF])目前触摸的两个点的中心坐标
  • startCenter:(只读[QPointF])第一次触摸时,两点的中心坐标
  • previousCenter:(只读[QPointF])上一次触摸事件的两点中心坐标
  • scale:(只读[real])当前缩放的倍数
  • previousScale:(只读[real])上一次缩放的倍数
  • angle:(只读[real])当前旋转角度,范围是[-180,180]
  • previousAngle:(只读[real])上一次旋转角度
  • rotation:(只读[real])这次旋转开始到结束所旋转的角度。
  • point1:(只读[QPointF])触摸的一个点坐标
  • point2:(只读[QPointF])触摸的另一个点坐标
  • startPoint1:(只读[QPointF])开始触摸时的一个点坐标
  • startPoint2
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值