QNativeGestureEvent 类

QNativeGestureEvent 类包含描述手势事件的参数。更多信息...

头文件 #include <QNativeGestureEvent>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承 QSinglePointEvent

公共函数

(自 6.2) QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *device, int fingerCount, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX)
(自 6.2) QPointFdelta() const
(自 6.2) intfingerCount() const
Qt::NativeGestureTypegestureType() const
qrealvalue() const

详细描述

原生手势事件由操作系统生成,通常通过解释触摸板触摸事件实现。手势事件是高级事件,如缩放、旋转或平移。一些类型持有增量值:即 value() 和 delta() 提供当前事件与上一个事件之间的差异。

事件类型描述触摸序列
Qt::ZoomNativeGesture百分比缩放增量。macOS 和 Wayland:两指捏缩。
Qt::SmartZoomNativeGesture布尔缩放状态。macOS:双指双击(触摸板)/ 单指双击(魔力鼠标)。
Qt::RotateNativeGesture旋转增量(以度为单位)。macOS 和 Wayland:两指旋转。
Qt::SwipeNativeGesture滑动角度(以度为单位)。macOS:可在触摸板设置中配置。
Qt::PanNativeGesture像素位移增量。Wayland:三指或更多手指作为一个组在任何方向上移动。

此外,BeginNativeGesture 和 EndNativeGesture 在手势事件流之前和之后发送

BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture

事件流可能包含不同类型的手势事件:例如,两指捏缩手势生成一个包含 Zoom 和 Rotate 事件的事件流,并且 PanNativeGesture 可能根据平台有时会与之交织。

其他类型是独立的事件:SmartZoomNativeGesture 和 SwipeNativeGesture 在检测到手势每次只发生一次。

注意:在触摸板上,将两只手指作为一个组合移动(即双指滑动手势)通常用于滚动;在这种情况下,Qt会生成QWheelEvent。这就是为什么需要三只或更多手指才能生成PanNativeGesture。

另请参阅 Qt::NativeGestureTypeQGestureEventQWheelEvent

成员函数文档

[自 6.2 版本以来] QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *device, int fingerCount, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX)

构建类型为type,由device生成,描述在scenePos处的手势,其中涉及fingerCount个手指的原生手势事件。

localPosscenePosglobalPos点分别指定手势相对于接收窗口或项目、窗口、屏幕或桌面的位置。

value具有手势依赖的解释:对于RotateNativeGesture或SwipeNativeGesture,它是一个以度为单位的角。对于ZoomNativeGesture,value是一个增量缩放因子,通常小于1,表示目标项应按照如下方式调整其比例:item.scale = item.scale * (1 + event.value)

对于PanNativeGesture,delta给出了视口、窗口或项应移动或滚动的像素距离。

注意: delta存储在单精度(QVector2D)中,因此delta()可能在某些情况下返回略有不同的值。这可能会在Qt的未来版本中更改。

此功能自Qt 6.2版本引入。

[自 6.2 版本以来] QPointF QNativeGestureEvent::delta() const

返回自上次事件以来移动的距离(以像素为单位)。一个平移手势通过像素值提供目标窗口、项目或视图内容应移动的距离。

此功能自Qt 6.2版本引入。

另请参阅 QPanGesture::delta

[自 6.2 版本以来] int QNativeGestureEvent::fingerCount() const

如果知道,返回参与手势的手指数。当gestureType()是Qt::BeginNativeGestureQt::EndNativeGesture时,通常不知道此信息,fingerCount()返回0

此功能自Qt 6.2版本引入。

Qt::NativeGestureType QNativeGestureEvent::gestureType() const

返回手势类型。

qreal QNativeGestureEvent::value() const

返回手势值。应根据手势类型来解释此值。例如,缩放手势提供了一个缩放因子增量,而旋转手势提供了一个旋转增量。

另请参阅 QNativeGestureEventgestureType 函数。

© 2024 The Qt Company Ltd. 本文档中的文档贡献均为各自所有者的版权。所提供的文档受 Free Software Foundation 发布的 GNU Free Documentation License 版本 1.3 条款的约束。Qt 以及相应的标志是 The Qt Company Ltd. 在芬兰及/或其他国家的商标。其他所有商标均为各自所有者的财产。