指针处理器 QML 类型

抽象处理指针事件的基类。 更多...

导入语句import QtQuick
继承自

PointerDeviceHandler

属性

信号

  • canceled(eventPoint point)
  • grabChanged(PointerDevice::GrabTransition transition, eventPoint point)

详细描述

PointerHandler 是全部指针设备(触摸、鼠标或绘图板)事件的基础类 Input Handler(未注册为 QML 类型)。

属性文档

active : bool [只读]

当此 Input Handler 通过成功获取这些点的独占捕获,独占负责处理一个或多个 eventPoints 时,此属性始终为 true。这意味着它将根据这些事件点的移动保持其属性更新,并积极操纵其 target(如果有)。


cursorShape : Qt::CursorShape

当鼠标在 parent 项上悬停且 activetrue 时,此属性将保存将要显示的光标形状。

可用的光标形状有

  • Qt.ArrowCursor
  • Qt.UpArrowCursor
  • Qt.CrossCursor
  • Qt.WaitCursor
  • Qt.IBeamCursor
  • Qt.SizeVerCursor
  • Qt.SizeHorCursor
  • Qt.SizeBDiagCursor
  • Qt.SizeFDiagCursor
  • Qt.SizeAllCursor
  • Qt.BlankCursor
  • Qt.SplitVCursor
  • Qt.SplitHCursor
  • Qt.PointingHandCursor
  • Qt.ForbiddenCursor
  • Qt.WhatsThisCursor
  • Qt.BusyCursor
  • Qt.OpenHandCursor
  • Qt.ClosedHandCursor
  • Qt.DragCopyCursor
  • Qt.DragMoveCursor
  • Qt.DragLinkCursor

默认值未设置,允许 cursorparent 项出现。可以通过将其设置为未定义来将此属性重置为相同的初始条件。

注意:当此属性未设置或已设置为 undefined 时,读取其值将返回 Qt.ArrowCursor

另请参阅 Qt::CursorShapeQQuickItem::cursor() 和 HoverHandler::cursorShape


dragThreshold : int

用户必须拖动 eventPoint 多少像素才能将其视为拖动手势。

默认值取决于平台和屏幕分辨率。将其设置为未定义可以将其重置为默认值。不同处理程序开始拖动手势时的行为各不相同。


enabled : bool

如果禁用了 PointerHandler,它将拒绝所有事件且不会发出任何信号。


grabPermissions : flags

此属性指定在处理程序逻辑决定接管独家抓取,或当它被其他处理程序要求批准抓取接管或取消时,所涉及的权限。

常量描述
PointerHandler.TakeOverForbidden此处理程序既不夺取也不向任何类型的 Item 或 Handler 授予抓取权限。
PointerHandler.CanTakeOverFromHandlersOfSameType此处理程序可以从同一类的另一个处理程序夺取独家抓取。
PointerHandler.CanTakeOverFromHandlersOfDifferentType此处理程序可以从任何类型的处理程序夺取独家抓取。
PointerHandler.CanTakeOverFromItems此处理程序可以从任何类型的 Item 夺取独家抓取。
PointerHandler.CanTakeOverFromAnything此处理程序可以从任何类型的 Item 或 Handler 夺取独家抓取。
PointerHandler.ApprovesTakeOverByHandlersOfSameType此处理程序允许同一类别的另一个处理程序获取抓取权限。
PointerHandler.ApprovesTakeOverByHandlersOfDifferentType此处理程序允许任何类型的处理程序获取抓取权限。
PointerHandler.ApprovesTakeOverByItems此处理程序允许任何类型的 Item 获取抓取权限。
PointerHandler.ApprovesCancellation此处理程序将允许其抓取设置为零。
PointerHandler.ApprovesTakeOverByAnything此处理程序允许任何类型的 Item 或 Handler 获取抓取权限。

默认值为 PointerHandler.CanTakeOverFromItems | PointerHandler.CanTakeOverFromHandlersOfDifferentType | PointerHandler.ApprovesTakeOverByAnything,这允许大多数接管场景但避免了例如两个 PinchHandlers 为相同触摸点而争斗的情况。


margin : real

在此范围内,parent Item 的边界之外,eventPoint 可以激活此处理程序。例如,对于一个 PinchHandler,其中 target 同样为 parent,将其设置为至少为用户典型手指宽度的一半的距离是有用的,这样如果 parent 已被缩放到一个非常小的尺寸,捏合手势仍然可以进行。或者,如果基于 TapHandler 的按钮放置在屏幕边缘附近,它可以用于符合菲茨定律:即使在按钮在视觉上相距几像素的情况下也要对屏幕边缘的鼠标点击做出反应。

默认值为 0。


parent : Item

Item 是处理程序的范畴;声明它的 Item。处理程序将为该 Item 处理事件,这意味着指针事件如果至少有一个其 eventPoints 发生在此 Item 的内部,则相关。最初 target() 是相同的,但它可以被重新分配。

另请参阅targetQObject::parent()。


target : Item

该处理器将操作的Item。

默认情况下,它与parent相同,即处理器声明的Item。但有时将目标设置为不同的Item,以便在单个item中处理事件但操作另一个item,或者将其设置为null,以禁用默认行为并执行其他操作,可能会很实用。


信号文档

canceled(eventPoint point)

如果此处理器已抓取指定的point,当由不同的Pointer Handler或Item抓取该抓取时,将发出此信号。

注意:相应的处理器是onCanceled


grabChanged(PointerDevice::GrabTransition transition, eventPoint point)

当抓取发生某些对处理器相关的方式的变化时,会发出此信号。

transition(动词)说明发生了什么。而point(对象)是抓取或未抓取的点。

transition的有效值

常量描述
PointerDevice.GrabExclusive此处理器已承担处理point的主要责任。
PointerDevice.UngrabExclusive此处理器已放弃先前的独占抓取。
PointerDevice.CancelGrabExclusive此处理器的独占抓取已被接管或取消。
PointerDevice.GrabPassive此处理器已获得被动抓取,以监控point
PointerDevice.UngrabPassive此处理器已放弃先前的被动抓取。
PointerDevice.CancelGrabPassive此处理器先前的被动抓取异常终止。

注意:相应的处理器是onGrabChanged


© 2024 The Qt Company Ltd。此处包含的文档贡献是其各自所有者的版权。此处提供的文档是根据由自由软件基金会发布的GNU免费文档许可证版本1.3的条款提供的。Qt及其相应标志是The Qt Company Ltd在芬兰和/或世界其他国家的商标。所有其他商标均为其各自所有者的财产。