QPointingDevice 类
QPointingDevice 类描述了鼠标、触摸或平板事件发生的设备。 更多...
头文件 | #include <QPointingDevice> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
自 | Qt 6.0 |
继承 | QInputDevice |
- 包括继承成员在内的所有成员列表
- QPointingDevice 是 事件类 的一部分。
公共类型
枚举 | 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) | |
int | buttonCount() const |
int | maximumPoints() const |
QPointingDevice::PointerType | pointerType() const |
QPointingDeviceUniqueId | uniqueId() const |
信号
void | grabChanged(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::GrabExclusive | 0x10 | 在QPointerEvent::setExclusiveGrabber()后被触发。 |
QPointingDevice::UngrabExclusive | 0x20 | 在QPointerEvent::setExclusiveGrabber()后将抓取器设置为nullptr 时被触发,以通知抓取已正常结束。 |
QPointingDevice::CancelGrabExclusive | 0x30 | 在QPointerEvent::setExclusiveGrabber()后将抓取器设置为另一个对象时被触发,以通知旧抓取器的抓取已被“抢占”。 |
QPointingDevice::GrabPassive | 0x01 | 在QPointerEvent::addPassiveGrabber()后被触发。 |
QPointingDevice::UngrabPassive | 0x02 | 在被动抓取正常结束时被触发,例如在QPointerEvent::removePassiveGrabber()之后。 |
QPointingDevice::CancelGrabPassive | 0x03 | 在被动抓取异常结束时被触发(例如手势被取消)。 |
QPointingDevice::OverrideGrabPassive | 0x04 | 此值当前未使用。 |
枚举类QPointingDevice::PointerType
标志QPointingDevice::PointerTypes
此枚举表示与指向设备交互的是什么。
此属性与QInputDevice::DeviceType之间有一些冗余。例如,如果使用触摸屏,则DeviceType
为TouchScreen
,而PointerType
为Finger
(始终)。但在绘图板上,往往可以使用笔的两端,而程序需要区分它们。因此,这个概念被扩展,以便每个QPointerEvent都有一个PointerType,并且它可以简化一些事件处理代码,以便仅基于PointerType单独做出反应。
有效的值有
常量 | 值 | 描述 |
---|---|---|
QPointingDevice::PointerType::Unknown | 0 | 指针类型未知。 |
QPointingDevice::PointerType::Generic | 0x0001 | 鼠标或类似鼠标的东西(X11上的核心指针)。 |
QPointingDevice::PointerType::Finger | 0x0002 | 用户的指纹。 |
QPointingDevice::PointerType::Pen | 0x0004 | 笔的绘图端。 |
QPointingDevice::PointerType::Eraser | 0x0008 | 笔的另一端(如果在其另一端有虚拟橡皮擦)。 |
QPointingDevice::PointerType::Cursor | 0x0010 | 在Puck设备上发现的一个带有十字准线的透明圆圈。 |
QPointingDevice::PointerType::AllPointerTypes | 0x7FFF | 上述任何一个(用作默认过滤器值)。 |
PointerTypes类型是QFlags
成员函数文档
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.商标。所有其他商标均为各自所有者的财产。