handlerPoint QML Type
事件点。更多
Import Statement: | import QtQuick |
属性
- device : PointerDevice
- ellipseDiameters : size
- id : int
- modifiers : enumeration
- position : point
- pressPosition : point
- pressedButtons : enumeration
- pressure : real
- rotation : real
- sceneGrabPosition : point
- scenePosition : point
- scenePressPosition : point
- uniqueId : pointingDeviceUniqueId
- velocity : vector2d
详细说明
处理程序拥有的 QML 表示QEventPoint 。
可以绑定处理程序当前point 或centroid 的属性。例如
import QtQuick Item { width: 640 height: 480 DragHandler { id: handler target: null } Text { color: handler.active ? "darkgreen" : "black" text: handler.centroid.position.x.toFixed(1) + "," + handler.centroid.position.y.toFixed(1) x: handler.centroid.position.x - width / 2 y: handler.centroid.position.y - height } }
当DragHandler 积极响应eventPoint 时,该点保持最新;但当该点被释放后,或当前点被不同的处理程序处理时,position.x
和position.y
为 0。
注: 这实际上与eventPoint 相同;不过,eventPoint 是长效Q_GADGET 的短效副本,它在两次手势之间失效,并在随后的事件交付中重复使用。对其属性的连续绑定是不可能的,而且在该处理程序正在处理的活动手势的一部分期间外,单个处理程序也不能依赖它。handlerPoint 是处理程序拥有的Q_GADGET 。这样就可以对其属性进行终生绑定。
另请参阅 SinglePointHandler::point 和MultiPointHandler::centroid 。
属性文档
device : PointerDevice |
该属性显示点(及其事件)来自的设备。
ellipseDiameters : size |
如果事件来自触摸点,且设备提供了相关信息,则该属性将保存接触贴片的直径。
触摸点的模型是手指按在触摸屏上的椭圆形区域。(事实上,它也可以被建模为一个位图;但在这种情况下,我们希望在发送事件之前,将一个椭圆边界估计值拟合到接触点上)。用户按压的力度越大,接触面积就越大;因此,在设备不包含单独压力传感器的情况下,这些直径提供了另一种检测压力的方法。椭圆以scenePosition 为中心(PointerHandler'Item's 本地坐标中的position )。rotation 属性提供了椭圆的旋转(如果已知)。如果rotation 为零,预计height 是较大的维度(主轴),因为通常手的位置是向上或向外伸过表面。
如果接触面积未知,或者设备不是触摸屏,这些值将为零。
另请参阅 QtQuick::TouchPoint::ellipseDiameters 和QEventPoint::ellipseDiameters 。
id : int |
点的 ID 编号
在触摸手势中,从按下第一个手指到松开最后一个手指,每个触摸点都有一个唯一的 ID 号。同样,如果从多个设备输入(例如同时按下鼠标和触摸),所有设备的当前eventPoints 都将有唯一的 ID。
注意: 不要假设 ID 号从零开始或它们是有顺序的。由于底层驱动程序的工作方式,这种假设往往是错误的。
另请参阅 QEventPoint::id 。
modifiers : enumeration |
当前按下的修改键
此属性包含事件发生时按下的键盘修饰符。
position : point |
parent
项目中的位置
这是eventPoint 相对于parent 边界的位置。
pressedButtons : enumeration |
当前按下的鼠标或触控笔按钮
另请参阅 MouseArea::pressedButtons 。
pressure : real |
该属性显示用户按压图形平板上的触控笔或触摸屏上的手指的力度,范围从0
(无法测量压力)到1.0
(设备可测量的最大压力)。
它只对某些可以测量压力的平板电脑和触摸屏有效。否则,它将为零。
rotation : real |
该属性用于保存绘图板上触控笔的旋转角度或触摸屏上触摸点的接触面积。
该属性仅对某些可以测量旋转角度的绘图板触控笔设备和触摸屏有效。否则,它将为零。
sceneGrabPosition : point |
场景中的抓取位置
如果该点已被指针处理程序或项目抓取,则表示该对象已全权负责处理该点的移动和释放。在这种情况下,这就是在场景图坐标系中发生抓取的位置。
scenePosition : point |
场景中的位置
这是eventPoint 相对于Qt Quick 场景(通常是整个窗口)边界的位置。
uniqueId : pointingDeviceUniqueId |
点的唯一 ID(如果有
通常为空,因为触摸屏无法唯一识别手指。
在某些类型的触摸屏上,尤其是使用 TUIO 驱动程序的触摸屏,除了手指外,还可以使用可识别的物理标记(靶标)。因此,如果此点是一个触摸点,并且设置了 uniqueId,它就是此类对象的标识符。
在绘图板上,每种类型的触控笔或其他工具通常都有一个唯一的 ID 或序列号,这有助于以不同的方式对不同的工具做出响应。
要解释 ID 的内容,需要了解所使用的硬件和驱动程序。
另请参阅 QTabletEvent::uniqueId 和QtQuick::TouchPoint::uniqueId 。
velocity : vector2d |
代表平均移动速度和方向的矢量
这是一个指向移动方向的速度矢量,单位为逻辑像素/秒。它有 x 和 y 两个分量,当该点处于运动状态时,至少有一个分量不为零。它表示最近的平均速度:即eventPoint 最近移动的速度和方向。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.