- 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:三指或多指作为一个整体移动,朝任何方向。
此外,BeforeNativeGesture 和 AfterNativeGesture 会发送在手势事件流之前和之后
BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture
事件流可能包括不同类型的手势:例如,双指捏合手势会生成一系列缩放和旋转事件,PanNativeGesture 可能会根据平台与这些事件交替。
其他类型是独立的事件:SmartZoomNativeGesture 和 SwipeNativeGesture 每次检测到手势时仅各发生一次。
注意
在触摸板上,以一个整体移动两指(双指快速轻扫手势)通常保留用于滚动;在这种情况下,Qt 会产生 QWheelEvents。这就是为什么需要三指或多指才能生成 PanNativeGesture 的原因。
另请参阅
- __init__(type, dev, localPos, scenePos, globalPos, value, sequenceId, intArgument)#
- 参数:
type –
NativeGestureType
dev –
QPointingDevice
localPos –
QPointF
scenePos –
QPointF
globalPos –
QPointF
value – float
sequenceId – int
intArgument – int
注意
此函数已过时。
请使用其他构造函数,因为
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])
- 参数:
type –
NativeGestureType
dev –
QPointingDevice
fingerCount – int
localPos –
QPointF
scenePos –
QPointF
globalPos –
QPointF
value – float
delta –
QPointF
sequenceId – int
根据从
device
出发并描述在scenePos
处的手势,构造一个类型为type
的本地手势事件,其中涉及fingerCount
个手指。localPos
、scenePos
和globalPos
分别指定手势相对于接收部件或项、窗口以及屏幕或桌面的位置。value
有手势依赖的解释:对于 RotateNativeGesture 或 SwipeNativeGesture,它是一个以度为单位的角度。对于 ZoomNativeGesture,value
是增量缩放系数,通常小于 1,表示目标项应按如下方式调整其缩放:item.scale = item.scale * (1 + event.value)对于 PanNativeGesture,
delta
提供了视口、部件或项应移动或平移的像素距离。- __init__(arg__1)
- 参数:
arg__1 –
QNativeGestureEvent
返回自上一个事件以来移动的距离,单位为像素。平移手势提供以像素为单位的目标小部件、项目或视口内容的移动距离。
另请参阅
- fingerCount()#
- 返回类型::
int
返回参与手势的手指数量,如果已知。当
gestureType()
为 Qt::BeginNativeGesture 或 Qt::EndNativeGesture 时,通常此信息未知,fingerCount() 返回0
。- gestureType()#
- 返回类型::
返回手势类型。
使用
globalPosition()
.toPoint() 代替。返回手势的位置,为屏幕坐标下的QPointF。
使用
position()
代替。返回手势的位置,为相对于接收事件的窗口小部件或项目的QPointF。
使用
position()
.toPoint() 代替。返回鼠标光标相对于接收事件的窗口小部件或项目的位置。
使用
globalPosition()
代替。返回手势在屏幕坐标下的QPointF位置。
- value()#
- 返回类型::
float
返回手势值。根据手势类型进行解释。例如,缩放手势提供缩放因子,旋转手势提供旋转增量。
请使用
scenePosition()
代替。返回手势的位置作为 QPointF,相对于接收事件的窗口。