QPointingDevice 类

QPointingDevice 类描述了鼠标、触摸或平板事件发生的设备。 更多...

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

公共类型

枚举GrabTransition { GrabExclusive, UngrabExclusive, CancelGrabExclusive, GrabPassive, UngrabPassive, …, OverrideGrabPassive }
枚举类PointerType { Unknown, Generic, Finger, Pen, Eraser, …, AllPointerTypes }
标志PointerTypes

公共函数

QPointingDevice(QObject *parent = nullptr)
QPointingDevice(const QString &name, qint64 id, QInputDevice::DeviceType deviceType, QPointingDevice::PointerType pointerType, QInputDevice::Capabilities capabilities, int maxPoints, int buttonCount, const QString &seatName = QString(), QPointingDeviceUniqueId uniqueId = QPointingDeviceUniqueId(), QObject *parent = nullptr)
intbuttonCount() const
intmaximumPoints() const
QPointingDevice::PointerTypepointerType() const
QPointingDeviceUniqueIduniqueId() const

信号

voidgrabChanged(QObject *grabber, QPointingDevice::GrabTransition transition, const QPointerEvent *event, const QEventPoint &point) const

静态公共成员

const QPointingDevice *primaryPointingDevice(const QString &seatName = QString())

详细描述

每个 QPointerEvent 都包含一个指向 QPointingDevice 的指针,以便访问特定于设备的属性,如类型和功能。平台或通用插件负责在生成任何指针事件之前通过 QWindowSystemInterface 注册可用的指针设备。应用程序不需要实例化此类,它们只需访问由 QPointerEvent::device() 指向的全局实例即可。

成员类型文档

枚举 QPointingDevice::GrabTransition

此枚举表示单个对象(可能为 nullptr)到另一个对象(可能为 nullptr)的独占或非独占捕获的转换。它作为 QPointingDevice::grabChanged() 信号的一个参数被发射。

有效的值有

常量描述
QPointingDevice::GrabExclusive0x10QPointerEvent::setExclusiveGrabber()后被触发。
QPointingDevice::UngrabExclusive0x20QPointerEvent::setExclusiveGrabber()后将抓取器设置为nullptr时被触发,以通知抓取已正常结束。
QPointingDevice::CancelGrabExclusive0x30QPointerEvent::setExclusiveGrabber()后将抓取器设置为另一个对象时被触发,以通知旧抓取器的抓取已被“抢占”。
QPointingDevice::GrabPassive0x01QPointerEvent::addPassiveGrabber()后被触发。
QPointingDevice::UngrabPassive0x02在被动抓取正常结束时被触发,例如在QPointerEvent::removePassiveGrabber()之后。
QPointingDevice::CancelGrabPassive0x03在被动抓取异常结束时被触发(例如手势被取消)。
QPointingDevice::OverrideGrabPassive0x04此值当前未使用。

枚举类QPointingDevice::PointerType
标志QPointingDevice::PointerTypes

此枚举表示与指向设备交互的是什么。

此属性与QInputDevice::DeviceType之间有一些冗余。例如,如果使用触摸屏,则DeviceTypeTouchScreen,而PointerTypeFinger(始终)。但在绘图板上,往往可以使用笔的两端,而程序需要区分它们。因此,这个概念被扩展,以便每个QPointerEvent都有一个PointerType,并且它可以简化一些事件处理代码,以便仅基于PointerType单独做出反应。

有效的值有

常量描述
QPointingDevice::PointerType::Unknown0指针类型未知。
QPointingDevice::PointerType::Generic0x0001鼠标或类似鼠标的东西(X11上的核心指针)。
QPointingDevice::PointerType::Finger0x0002用户的指纹。
QPointingDevice::PointerType::Pen0x0004笔的绘图端。
QPointingDevice::PointerType::Eraser0x0008笔的另一端(如果在其另一端有虚拟橡皮擦)。
QPointingDevice::PointerType::Cursor0x0010在Puck设备上发现的一个带有十字准线的透明圆圈。
QPointingDevice::PointerType::AllPointerTypes0x7FFF上述任何一个(用作默认过滤器值)。

PointerTypes类型是QFlags的一个typedef。它存储了PointerType值的逻辑或组合。

成员函数文档

QPointingDevice::QPointingDevice(QObject *parent = nullptr)

创建一个新的无效指向设备实例,作为parent的子项。

QPointingDevice::QPointingDevice(const QString &name, qint64 id, QInputDevice::DeviceType deviceType, QPointingDevice::PointerType pointerType, QInputDevice::Capabilities capabilities, int maxPoints, int buttonCount, const QString &seatName = QString(), QPointingDeviceUniqueId uniqueId = QPointingDeviceUniqueId(), QObject *parent = nullptr)

创建一个新的光标设备实例,带有指定的 名称设备类型指针类型能力最大点数按钮数座位名称唯一ID父节点

int QPointingDevice::buttonCount() const

返回可以在设备上检测到的最大按钮数。

注意:属性 buttonCount 的获取函数。

[信号] void QPointingDevice::grabChanged(QObject *抓取者, QPointingDevice::GrabTransition transition, const QPointerEvent *事件, const QEventPoint &point) const

抓取者 对象在事件传递过程中获取或丢失对 的独占或被动抓取时,将发射此信号。 transition 说明了从 抓取者 对象的角度来看发生了什么。

注意:从一个对象到另一个对象的抓取转换将产生两个信号,一个用于通知一个对象已丢失其抓取,另一个用于通知有另一个抓取者。在其他情况下,在转换到或从非抓取状态时,只会发射一个信号:抓取者 参数从不为 nullptr

另请参阅:QPointerEvent::setExclusiveGrabber(),QPointerEvent::addPassiveGrabber(),和 QPointerEvent::removePassiveGrabber()。

int QPointingDevice::maximumPoints() const

返回可以检测到的最大同时触摸点数(手指)。

注意:属性 maximumPoints 的获取函数。

QPointingDevice::PointerType QPointingDevice::pointerType() const

返回指针类型。

注意:属性 pointerType 的获取函数。

[静态] const QPointingDevice *QPointingDevice::primaryPointingDevice(const QString &seatName = QString())

返回指定座位 seatName 上的主光标设备(核心指针,传统上假设为鼠标)。

如果有多个光标设备已注册,此函数优先选择可与给定 seatName 匹配的鼠标或触摸板,并且没有其他设备作为其父节点。通常只有一个主或核心设备没有父设备。但如果找不到这样的设备,此函数将创建一个新虚拟“核心指针”鼠标。这样 Qt 可以继续在平台上进行工作,这些平台尚未执行输入设备发现和注册。

QPointingDeviceUniqueId QPointingDevice::uniqueId() const

返回设备的唯一ID(效用可疑)。

您可能更关心 QPointerEventPoint::uniqueId() 。

注意:属性 uniqueId 的获取函数。

© 2024 The Qt Company Ltd. 本文档中包含的贡献文本归各自所有者所有。本提供的文档受GNU自由文档许可证1.3版本许可,由自由软件基金会发布。Qt及其对应标识为芬兰以及/或其他国家的The Qt Company Ltd.商标。所有其他商标均为各自所有者的财产。