本页内容

handlerPoint QML Type

一个事件点。更多...

Import Statement: import QtQuick

属性

详细说明

由处理程序拥有的QEventPoint 的QML表示形式。

可以对处理程序当前的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 [read-only]

该属性保存了该点(及其事件)来源的设备。

ellipseDiameters : size [read-only]

如果事件来自触点且设备提供了此信息,则该属性将包含接触区域的直径。

触点被建模为手指按压触摸屏时形成的椭圆形区域。(实际上,它也可以被建模为位图;但在这种情况下,我们期望在发送事件之前,先将椭圆形边界估计值拟合到接触区域上。) 用户按压力度越大,接触区域就越大;因此,当设备未配备独立压力传感器时,这些直径可作为检测压力的替代方法。椭圆的中心位于scenePosition (在PointerHandler 的Item本地坐标系中为position )。rotation 属性提供椭圆的旋转角度(若已知)。通常情况下,当rotation 为零时,height 应为较长的一边(长轴),这是因为手在触摸屏幕时通常呈向上或向外伸展的姿势。

如果接触区域未知,或者设备不是触摸屏,这些值将为零。

另请参阅 QtQuick::TouchPoint::ellipseDiameters 和QEventPoint::ellipseDiameters 。

id : int [read-only]

该点的ID号

在触摸手势过程中,从第一根手指按下到最后一根手指松开,每个触点都会有一个唯一的ID号。同样地,如果来自多个设备的输入同时发生(例如鼠标和触摸的同步按压),所有设备当前的eventPoints 都会具有唯一的ID。

注意:请 勿假设 ID 编号从零开始,也请 勿假设它们是顺序编号。由于底层驱动程序的工作方式,这种假设通常是不成立的。

另请参阅 QEventPoint::id 。

modifiers : enumeration [read-only]

当前按下的修饰键有哪些

该属性保存了事件发生时被按下的键盘修饰键。

position : point [read-only]

parent 项目中的位置

这是eventPoint 相对于parent 边界的位置。

pressPosition : point [read-only]

parent 项中的按压位置

这是该点被点击时的位置,相对于parent 的边界而言。

pressedButtons : enumeration [read-only]

当前按下的鼠标或触控笔按钮有哪些

另请参阅 MouseArea::pressedButtons 。

pressure : real [read-only]

该属性表示用户在图形输入板上按压数位笔或在触摸屏上按压手指的力度,数值范围从0 (无可测压力)到1.0 (设备可测量的最大压力)。

该属性仅在某些能够测量压力的图形输入板和触摸屏上有效。否则,其值为零。

rotation : real [read-only]

该属性存储图形输入板上手写笔的旋转角度,或触摸屏上触点接触区域的旋转角度。

该属性仅在某些能够测量旋转角度的图形输入板笔和触摸屏上有效。否则,其值为零。

sceneGrabPosition : point [read-only]

场景中的抓取位置

如果该点已被“指针处理器”或“项目”抓取,则意味着该对象已完全负责处理该点的移动和释放。在这种情况下,该位置即为抓取发生时的坐标,以场景图的坐标系为准。

scenePosition : point [read-only]

场景中的位置

这是eventPoint 相对于Qt Quick 场景边界(通常为整个窗口)的位置。

scenePressPosition : point [read-only]

场景中的按键位置

这是在场景图坐标系中,该点被点击时的位置。

uniqueId : pointingDeviceUniqueId [read-only]

该点的唯一标识符(如有)

该字段通常为空,因为触摸屏无法唯一识别手指。

在某些类型的触摸屏上,尤其是使用 TUIO 驱动程序的触摸屏,除了手指之外,还可以使用可识别的物理标记(基准物体)。因此,如果该点是触摸点,且 uniqueId 已设置,则该值即为该物体的标识符。

在图形输入板上,每种类型的触控笔或其他工具通常都有一个唯一的 ID 或序列号,这有助于针对不同的工具做出不同的响应。

要解析该ID的内容,需要了解所使用的硬件和驱动程序。

另请参阅 QTabletEvent::uniqueId 和QtQuick::TouchPoint::uniqueId 。

velocity : vector2d [read-only]

一个表示平均速度和运动方向的向量

这是一个指向移动方向的速度向量,单位为逻辑像素/秒。它包含 x 和 y 分量,当该点处于运动状态时,其中至少有一个分量不为零。它保存了最近的平均速度:即eventPoint 最近的移动速度及其方向。

另请参阅 QtQuick::TouchPoint::velocity 和QEventPoint::velocity 。

© 2026 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.