PySide6.QtGui.QNativeGestureEvent¶
- class QNativeGestureEvent¶
QNativeGestureEvent类包含描述手势事件的参数。更多…概要¶
方法¶
def
__init__()def
delta()def
fingerCount()def
gestureType()def
globalPos()def
localPos()def
pos()def
screenPos()def
value()def
windowPos()
注意
本文档可能包含从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的原因。
另请参阅
- __init__(arg__1)¶
- Parameters:
arg__1 –
QNativeGestureEvent
- __init__(type, dev, localPos, scenePos, globalPos, value, sequenceId, intArgument)
- Parameters:
type –
NativeGestureTypedev –
QPointingDevicelocalPos –
QPointFscenePos –
QPointFglobalPos –
QPointFvalue – 浮点数
sequenceId – int
intArgument – 整数
注意
此函数已弃用。
使用另一个构造函数,因为
intValue不再单独存储。构造一个源自
device的type类型的本地手势事件。点
localPos、scenePos和globalPos分别指定了手势位置相对于接收的小部件或项目、窗口以及屏幕或桌面的位置。realValue是 macOS 事件参数,sequenceId和intValue是 Windows 事件参数。注意
无法同时存储realValue和
intValue:其中一个必须为零。如果realValue== 0 且intValue!= 0,它将存储在同一个变量中,使得value()返回的值与intValue相同。- __init__(type, dev, fingerCount, localPos, scenePos, globalPos, value, delta[, sequenceId=UINT64_MAX])
- Parameters:
type –
NativeGestureTypedev –
QPointingDevicefingerCount – int
localPos –
QPointFscenePos –
QPointFglobalPos –
QPointFvalue – 浮点数
delta –
QPointFsequenceId – int
构造一个类型为
type的原生手势事件,该事件源自device,描述了在scenePos处的手势,其中涉及fingerCount个手指。点
localPos、scenePos和globalPos分别指定了手势位置相对于接收的小部件或项目、窗口以及屏幕或桌面的位置。value具有手势相关的解释:对于 RotateNativeGesture 或 SwipeNativeGesture,它是一个以度为单位的角度。对于 ZoomNativeGesture,value是一个增量缩放因子,通常远小于 1,表示目标项目的缩放比例应按如下方式调整:item.scale = item.scale * (1 + event.value)对于PanNativeGesture,
delta给出了视口、小部件或项目应移动或平移的像素距离。返回自上一个事件以来移动的距离,以像素为单位。平移手势提供了目标小部件、项目或视口内容应移动的像素距离。
另请参阅
- fingerCount()¶
- Return type:
整数
返回参与手势的手指数量(如果已知)。当
gestureType()为Qt::BeginNativeGesture或Qt::EndNativeGesture时,通常此信息未知,fingerCount()返回0。- gestureType()¶
- Return type:
返回手势类型。
使用
globalPosition().toPoint() 代替。返回手势在屏幕坐标中的位置,作为QPointF
使用
position()代替。返回手势的位置作为QPointF,相对于接收到事件的小部件或项目。
使用
position().toPoint() 代替。返回鼠标光标的位置,相对于接收到事件的小部件或项目。
请使用
globalPosition()代替。返回手势在屏幕坐标中的位置,作为一个QPointF。
- value()¶
- Return type:
浮点数
返回手势值。该值应根据手势类型进行解释。例如,缩放手势提供比例因子增量,而旋转手势提供旋转增量。
请使用
scenePosition()代替。返回手势的位置作为QPointF,相对于接收到事件的窗口。