本页内容

QEventPoint Class

QEventPoint 类提供了关于QPointerEvent 中某一点的信息。更多内容...

头文件: #include <QEventPoint>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
自: Qt 6.0

公共类型

enum State { Unknown, Stationary, Pressed, Updated, Released }
flags States

属性

公共函数

QEventPoint(int pointId, QEventPoint::State state, const QPointF &scenePosition, const QPointF &globalPosition)
QEventPoint(const QEventPoint &other)
QEventPoint(QEventPoint &&other)
~QEventPoint()
const QPointingDevice *device() const
QSizeF ellipseDiameters() const
QPointF globalGrabPosition() const
QPointF globalLastPosition() const
QPointF globalPosition() const
QPointF globalPressPosition() const
QPointF grabPosition() const
int id() const
bool isAccepted() const
QPointF lastPosition() const
ulong lastTimestamp() const
QPointF normalizedPosition() const
QPointF position() const
QPointF pressPosition() const
ulong pressTimestamp() const
qreal pressure() const
qreal rotation() const
QPointF sceneGrabPosition() const
QPointF sceneLastPosition() const
QPointF scenePosition() const
QPointF scenePressPosition() const
void setAccepted(bool accepted = true)
QEventPoint::State state() const
qreal timeHeld() const
ulong timestamp() const
QPointingDeviceUniqueId uniqueId() const
QVector2D velocity() const
bool operator!=(const QEventPoint &other) const
QEventPoint &operator=(QEventPoint &&other)
QEventPoint &operator=(const QEventPoint &other)
bool operator==(const QEventPoint &other) const

详细说明

成员类型文档

enum QEventPoint::State
flags QEventPoint::States

指定此事件点的状态。

常量值描述
QEventPoint::UnknownQt::TouchPointUnknownState未知状态。
QEventPoint::StationaryQt::TouchPointStationary事件点未移动。
QEventPoint::PressedQt::TouchPointPressed触摸点或按钮被按下。
QEventPoint::UpdatedQt::TouchPointMoved事件点已更新。
QEventPoint::ReleasedQt::TouchPointReleased触摸点或按钮已被释放。

“状态”类型是QFlags<State> 的 typedef。它存储了 State 值的“或”组合。

属性文档

accepted : bool

该属性保存事件点的已接受状态。

在基于控件的应用程序中,该属性不会被使用,因为对控件而言,只有接受或拒绝完整的QInputEvent 才具有实际意义。

然而,在Qt Quick 中,Item或Event Handler通常仅接受QTouchEvent 中实际参与手势的个别点,而其他点则可传递给其他Item或Handler。为保持一致性,此规则适用于任何QPointerEvent ;且只有当QPointerEvent 中的所有点均已被接受后,才会进行传递。

访问函数:

bool isAccepted() const
void setAccepted(bool accepted = true)

另请参阅 QEvent::accepted 。

[read-only] device : const QPointingDevice*

该属性存储了此事件点来源的指针设备。

访问函数:

const QPointingDevice *device() const

[read-only] ellipseDiameters : const QSizeF

该属性存储触摸点的边界椭圆的宽度和高度。

返回值为逻辑像素单位。大多数触摸屏无法检测到接触点的形状,且鼠标或数位板设备均无法检测,因此返回值为 null 最为常见。在某些触摸屏上,两个直径可能不为零且始终相等(此时椭圆被近似为圆形)。

访问函数:

QSizeF ellipseDiameters() const

[read-only] globalGrabPosition : const QPointF

该属性保存了抓取该点时所在的全局位置。

全局位置相对于屏幕或虚拟桌面。

访问函数:

QPointF globalGrabPosition() const

另请参阅 globalPosition 、grabPosition 以及sceneGrabPosition 。

[read-only] globalLastPosition : const QPointF

该属性保存了上次点击或移动事件中该点的全局位置。

全局位置相对于屏幕或虚拟桌面。

访问函数:

QPointF globalLastPosition() const

另请参阅 globalPosition 、lastPosition 以及sceneLastPosition 。

[read-only] globalPosition : const QPointF

该属性保存了该点的全局位置。

全局位置是以屏幕或虚拟桌面为参考的。

访问函数:

QPointF globalPosition() const

另请参阅 globalPressPosition 、position 以及scenePosition 。

[read-only] globalPressPosition : const QPointF

该属性保存了点击此点时的全局位置。

全局位置相对于屏幕或虚拟桌面。

访问函数:

QPointF globalPressPosition() const

另请参阅 globalPosition 、pressPosition 和scenePressPosition 。

[read-only] grabPosition : const QPointF

该属性保存了抓取该点时的位置。

该位置相对于接收该事件的小部件或项目。

访问函数:

QPointF grabPosition() const

另请参阅 position 。

[read-only] id : const int

该属性存储了此事件点的ID号。

注意:请 勿假设 ID 编号从零开始,也请 勿假设它们是连续的。由于底层驱动程序的工作方式,此类假设通常是不正确的。

访问函数:

int id() const

[read-only] lastPosition : const QPointF

该属性保存了上次点击或移动事件中该点的位置。

该位置相对于接收该事件的控件或项目。

访问函数:

QPointF lastPosition() const

另请参阅 position 和pressPosition 。

[read-only] lastTimestamp : const ulong

该属性保存了包含该点的上一个QPointerEvent 的时间。

访问函数:

ulong lastTimestamp() const

另请参阅 globalLastPosition 。

[read-only] position : const QPointF

该属性保存了该点的坐标位置。

该位置相对于接收该事件的小部件或项目。

访问函数:

QPointF position() const

[read-only] pressPosition : const QPointF

该属性存储了按下此点时的位置。

该位置相对于接收该事件的控件或项。

访问函数:

QPointF pressPosition() const

另请参阅 position 。

[read-only] pressTimestamp : const ulong

该属性保存了此点被按下的最新时间。

访问函数:

ulong pressTimestamp() const

另请参阅 timestamp 。

[read-only] pressure : const qreal

该属性存储该点的压力值。

返回值的范围为0.0 到1.0 。

访问函数:

qreal pressure() const

[read-only] rotation : const qreal

该属性存储了该点的角度方向。

返回值为角度(单位为度),其中零(默认值)表示手指、触控笔或触控设备正朝上,负角度表示向左旋转,正角度表示向右旋转。大多数触摸屏不检测旋转方向,因此零是最常见的值。

访问函数:

qreal rotation() const

[read-only] sceneGrabPosition : const QPointF

该属性保存了抓取该点时的场景位置。

该场景位置是指:若通过 `QQuickItem::event()` 处理,则为相对于 `QQuickWindow ` 的位置;若通过 `QGraphicsItem::touchEvent()` 的重写方法处理,则为 `QGraphicsScene ` 坐标系中的位置;而在控件应用程序中,则为窗口位置。

访问函数:

QPointF sceneGrabPosition() const

另请参阅 scenePosition 、grabPosition 以及globalGrabPosition 。

[read-only] sceneLastPosition : const QPointF

该属性保存了此点在上一次点击或移动事件中的场景位置。

场景位置是指:若在 `QQuickItem::event()` 中处理,则相对于 `QQuickWindow ` 的位置;若通过重写 `QGraphicsItem::touchEvent()` 进行处理,则为 `QGraphicsScene ` 坐标系中的位置;而在控件应用程序中,则为窗口位置。

访问函数:

QPointF sceneLastPosition() const

另请参阅 scenePosition 和scenePressPosition 。

[read-only] scenePosition : const QPointF

该属性保存了该点的场景位置。

场景位置是指:若通过 `QQuickItem::event()` 处理,则相对于 `QQuickWindow ` 的位置;若通过 `QGraphicsItem::touchEvent()` 的重写处理,则为 `QGraphicsScene ` 坐标系中的位置;而在控件应用程序中,则为窗口位置。

访问函数:

QPointF scenePosition() const

另请参阅 scenePressPosition 、position 和globalPosition 。

[read-only] scenePressPosition : const QPointF

该属性保存了点击此点时的场景位置。

该场景位置是指:若通过 `QQuickItem::event()` 处理,则为相对于 `QQuickWindow ` 的位置;若通过 `QGraphicsItem::touchEvent()` 的重写处理,则为 `QGraphicsScene ` 坐标系中的位置;而在控件应用程序中,则为窗口位置。

访问函数:

QPointF scenePressPosition() const

另请参阅 scenePosition 、pressPosition 和globalPressPosition 。

[read-only] state : const State

该属性保存了事件点的当前状态。

访问函数:

QEventPoint::State state() const

[read-only] timeHeld : const qreal

该属性存储自该点被按下且未松开以来经过的时间(单位为秒)。

访问函数:

qreal timeHeld() const

另请参阅 pressTimestamp 和timestamp 。

[read-only] timestamp : const ulong

该属性存储该点最后一次被纳入QPointerEvent 的时间。

访问函数:

ulong timestamp() const

另请参阅 QPointerEvent::timestamp()。

[read-only] uniqueId : const QPointingDeviceUniqueId

该属性保存此点或令牌(如有)的唯一标识符。

该属性通常无效(参见isValid()),因为触摸屏无法唯一识别手指。

当它来自QTabletEvent 时,它标识了正在使用的触控笔的序列号。

当 TUIO 驱动程序与支持特定令牌(基准对象)的触摸屏配合使用时,该属性可能会标识一个特定的令牌(基准对象)。

访问函数:

QPointingDeviceUniqueId uniqueId() const

[read-only] velocity : const QVector2D

该属性存储一个速度向量,单位为每秒像素,坐标系为屏幕或桌面坐标系。

注意:如果 设备的能力中包含QInputDevice::Velocity ,则表示速度来自操作系统(可能是触摸硬件或驱动程序提供的)。但通常Velocity 能力未被设置,这表明速度是由Qt计算得出的,它使用一个简单的卡尔曼滤波器来提供平滑的平均速度,而不是瞬时值。 实际上,它反映了在最近几个事件中,用户拖动该点的速度和方向,其中最近的事件影响最大。

访问函数:

QVector2D velocity() const

另请参阅 QInputDevice::capabilities() 和QInputEvent::device()。

成员函数文档

QEventPoint::QEventPoint(int pointId, QEventPoint::State state, const QPointF &scenePosition, const QPointF &globalPosition)

根据给定的pointId 、state 、scenePosition 和globalPosition 构建一个事件点。

[noexcept] QEventPoint::QEventPoint(const QEventPoint &other)

通过对other 进行浅拷贝来构建一个事件点。

[constexpr noexcept default] QEventPoint::QEventPoint(QEventPoint &&other)

通过移动other 来构建一个事件点。

[noexcept] QEventPoint::~QEventPoint()

销毁该事件点。

QPointF QEventPoint::normalizedPosition() const

返回该点的归一化位置。

坐标的计算是将globalPosition()转换到QInputDevice::availableVirtualGeometry()的空间中,即(0, 0) 是左上角,(1, 1) 是右下角。

另请参阅 globalPosition 。

[noexcept] bool QEventPoint::operator!=(const QEventPoint &other) const

如果该事件点不等于other ,则返回true ;否则返回false 。

[noexcept] QEventPoint &QEventPoint::operator=(QEventPoint &&other)

将other 赋值给此事件点实例。

[noexcept] QEventPoint &QEventPoint::operator=(const QEventPoint &other)

将other 分配给此事件点,并返回对此事件点的引用。

[noexcept] bool QEventPoint::operator==(const QEventPoint &other) const

如果该事件点等于other ,则返回true ;否则返回false 。

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