PySide6.QtGui.QNativeGestureEvent

class QNativeGestureEvent

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

PySide6.QtGui.QNativeGestureEvent 的继承图

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

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

事件类型

描述

触摸序列

Qt::ZoomNativeGesture

放大倍率增量百分比。

macOS 和 Wayland:双指捏合。

Qt::SmartZoomNativeGesture

布尔放大状态。

macOS: 双指双击(触控板) / 单指双击(魔术鼠标)。

Qt::RotateNativeGesture

旋转角度,单位为度。

macOS 和 Wayland:双指旋转。

Qt::SwipeNativeGesture

滑动的角度,以度为单位。

macOS:可在触控板设置中配置。

Qt::PanNativeGesture

位移增量以像素为单位。

Wayland:三个或更多手指作为一个组在任何方向上移动。

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

开始原生手势 缩放原生手势 缩放原生手势 缩放原生手势 结束原生手势

事件流可能包括不同类型的手势交错:例如,两指捏合手势会生成一系列缩放和旋转事件,而PanNativeGesture有时可能会与这些事件交错,具体取决于平台。

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

注意

在触摸板上,将两个手指作为一个整体移动(双指轻扫手势)通常用于滚动;在这种情况下,Qt会生成QWheelEvents。这就是为什么需要三个或更多手指来生成PanNativeGesture的原因。

另请参阅

QWheelEvent

__init__(arg__1)
Parameters:

arg__1QNativeGestureEvent

__init__(type, dev, localPos, scenePos, globalPos, value, sequenceId, intArgument)
Parameters:

注意

此函数已弃用。

使用另一个构造函数,因为intValue不再单独存储。

构造一个源自devicetype类型的本地手势事件。

localPosscenePosglobalPos 分别指定了手势位置相对于接收的小部件或项目、窗口以及屏幕或桌面的位置。

realValue 是 macOS 事件参数,sequenceIdintValue 是 Windows 事件参数。

注意

无法同时存储realValue和intValue:其中一个必须为零。如果realValue == 0 且 intValue != 0,它将存储在同一个变量中,使得value()返回的值与intValue相同。

__init__(type, dev, fingerCount, localPos, scenePos, globalPos, value, delta[, sequenceId=UINT64_MAX])
Parameters:

构造一个类型为type的原生手势事件,该事件源自device,描述了在scenePos处的手势,其中涉及fingerCount个手指。

localPosscenePosglobalPos 分别指定了手势位置相对于接收的小部件或项目、窗口以及屏幕或桌面的位置。

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

对于PanNativeGesture,delta给出了视口、小部件或项目应移动或平移的像素距离。

注意

delta 以单精度存储(QVector2D),因此在某些情况下,delta() 可能会返回略微不同的值。这可能会在未来的 Qt 版本中发生变化。

delta()
Return type:

QPointF

返回自上一个事件以来移动的距离,以像素为单位。平移手势提供了目标小部件、项目或视口内容应移动的像素距离。

另请参阅

delta()

fingerCount()
Return type:

整数

返回参与手势的手指数量(如果已知)。当gestureType()为Qt::BeginNativeGesture或Qt::EndNativeGesture时,通常此信息未知,fingerCount()返回0

gestureType()
Return type:

NativeGestureType

返回手势类型。

globalPos()
Return type:

QPoint

注意

此函数已弃用。

使用 globalPosition() .toPoint() 代替。

返回手势在屏幕坐标中的位置,作为QPointF

localPos()
Return type:

QPointF

注意

此函数已弃用。

使用 position() 代替。

返回手势的位置作为QPointF,相对于接收到事件的小部件或项目。

pos()
Return type:

QPoint

注意

此函数已弃用。

使用 position() .toPoint() 代替。

返回鼠标光标的位置,相对于接收到事件的小部件或项目。

screenPos()
Return type:

QPointF

注意

此函数已弃用。

请使用 globalPosition() 代替。

返回手势在屏幕坐标中的位置,作为一个QPointF。

value()
Return type:

浮点数

返回手势值。该值应根据手势类型进行解释。例如,缩放手势提供比例因子增量,而旋转手势提供旋转增量。

windowPos()
Return type:

QPointF

注意

此函数已弃用。

请使用scenePosition()代替。

返回手势的位置作为QPointF,相对于接收到事件的窗口。