PySide6.QtGui.QInputDevice

class QInputDevice

QInputDevice 类描述了生成 QInputEvent 事件的设备。更多

PySide6.QtGui.QInputDevice 的继承图

继承自: QPointingDevice

概要

属性

方法

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

每个QInputEvent包含一个QInputDevice指针,以允许访问设备特定的属性,如类型、功能和座位。平台或通用插件有责任在生成任何引用该设备的输入事件之前,通过QWindowSystemInterface::registerInputDevice()发现、创建并注册与该设备对应的此类的实例。

应用程序不需要实例化这个类,但可以读取由device()devices()指向的实例。

class DeviceType

(继承自 enum.Flag) 此枚举表示生成 QPointerEvent 的设备类型。

常量

描述

QInputDevice.DeviceType.Unknown

无法识别该设备。

QInputDevice.DeviceType.Mouse

鼠标。

QInputDevice.DeviceType.TouchScreen

在这种类型的设备中,触摸表面和显示屏是集成的。这意味着表面和显示屏通常具有相同的尺寸,因此触摸点的物理位置与QEventPoint报告的坐标之间存在直接关系。因此,Qt允许用户同时直接与多个QWidgets、QGraphicsItems或Qt Quick Items进行交互。

QInputDevice.DeviceType.TouchPad

在这种类型的设备中,触摸表面与显示屏是分开的。物理触摸位置与屏幕坐标之间没有直接关系。相反,它们是相对于当前鼠标位置计算的,用户必须使用触摸板来移动这个参考点。与触摸屏不同,Qt 允许用户一次只能与单个 QWidget 或 QGraphicsItem 进行交互。

QInputDevice.DeviceType.Stylus

一种用于图形输入板(如Wacom输入板)或具有单独触笔感应功能的触摸屏上的笔状设备。

QInputDevice.DeviceType.Airbrush

一种带有拇指轮以调整tangentialPressure的触控笔。

QInputDevice.DeviceType.Puck

一种类似于带有十字准线的透明圆圈的扁平鼠标的设备。

QInputDevice.DeviceType.Keyboard

一个键盘。

QInputDevice.DeviceType.AllDevices

以上任意一种(用作默认过滤值)。

class Capability

(继承自 enum.Flag) 表示输入设备或其驱动程序可以提供的信息类型。

常量

描述

QInputDevice.Capability.None

没有关于输入设备功能的信息可用。

QInputDevice.Capability.Position

表示位置信息可用,意味着触摸点中的position()系列函数返回有效的点。

QInputDevice.Capability.Area

表示触摸区域信息可用,这意味着触摸点中的ellipseDiameters()返回有效值。

QInputDevice.Capability.Pressure

表示压力信息可用,意味着 pressure() 返回一个有效值。

QInputDevice.Capability.Velocity

表示速度信息可用,意味着velocity()返回一个有效的向量。

QInputDevice.Capability.NormalizedPosition

表示归一化位置可用,意味着 globalPosition() 返回一个有效值。

QInputDevice.Capability.MouseEmulation

表示该设备合成鼠标事件。

QInputDevice.Capability.Scroll

表示该设备具有滚动功能。

QInputDevice.Capability.PixelScroll

表示该设备(通常是触摸板)以像素 精度滚动。

QInputDevice.Capability.Hover

表示该设备具有悬停功能。

QInputDevice.Capability.Rotation

表示rotation信息可用。

QInputDevice.Capability.XTilt

表示X轴上有倾斜信息可用。

QInputDevice.Capability.YTilt

表示Y轴上有倾斜信息可用。

QInputDevice.Capability.TangentialPressure

表示tangential pressure信息可用。

QInputDevice.Capability.ZPosition

表示Z轴的位置信息可用。

QInputDevice.Capability.All

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property availableVirtualGeometryᅟ: QRect
Access functions:
property capabilitiesᅟ: Combination of QDBusConnection.ConnectionCapability
Access functions:
property nameᅟ: str
Access functions:
property seatNameᅟ: str
Access functions:
property systemIdᅟ: int
Access functions:
property typeᅟ: QInputDevice.设备类型
Access functions:
__init__([parent=None])
Parameters:

父对象QObject

创建一个新的无效输入设备实例作为parent的子项。

__init__(name, systemId, type[, seatName=""[, parent=None]])
Parameters:
  • name – str

  • systemId – int

  • typeDeviceType

  • seatName – str

  • parentQObject

创建一个新的输入设备实例。给定的name通常是制造商分配的型号名称(如果可用),或其他可识别的名称;id是一个平台特定的数字,每个设备都是唯一的(例如X11上的xinput ID);type标识设备的类型。在能够同时处理来自多个用户或多组输入设备的窗口系统(如Wayland或X11)上,seatName标识将一起使用的设备集的名称。如果设备是子设备或从属设备(例如可以轮流移动“核心指针”的多个鼠标之一),则应提供主设备作为parent

平台插件创建、注册并继续拥有每个设备实例;通常即使特定设备没有主设备,也应出于内存管理目的提供parent

默认情况下,capabilities()None

availableVirtualGeometry()
Return type:

QRect

返回此设备可以访问的virtual desktop内的区域。

例如,TouchScreen输入设备固定在单个物理屏幕上,并且通常经过校准,使得该区域与geometry()相同;而Mouse可能可以访问虚拟桌面上的所有屏幕。Wacom绘图板可能被配置为映射到所有屏幕,或者仅映射到用户喜欢绘图的屏幕,或者映射到绘图发生的窗口。与触摸屏集成的Stylus设备可能在物理上仅限于该屏幕。

如果返回的矩形为null,则表示此设备可以访问整个虚拟桌面。

属性 availableVirtualGeometryᅟ 的获取器。

availableVirtualGeometryChanged(area)
Parameters:

区域QRect

属性 availableVirtualGeometryᅟ 的通知信号。

capabilities()
Return type:

Capability的组合

返回设备功能。

static devices()
Return type:

常量 QInputDevice 的列表

返回所有已注册输入设备(键盘和指向设备)的列表。

注意

设备列表在所有平台上并不总是完整的。到目前为止,最完整的信息在X11平台上可用,无论是在启动时还是在响应热插拔时。大多数其他平台只能在接收到事件后才能提供各种类型的通用设备;而且大多数平台在设备插入或运行时拔出时不会通知Qt。

注意

返回的列表不能用于添加新设备。要为自动化测试添加模拟触摸屏,可以使用QTest::createTouchDevice()。平台插件应在发现设备时调用QWindowSystemInterface::registerInputDevice()来添加设备。

hasCapability(cap)
Parameters:

cap能力

Return type:

布尔

返回设备功能是否包含给定的capability

name()
Return type:

字符串

返回设备名称。

此字符串可能为空。然而,在具有多个输入设备的系统上,它非常有用:可以用来区分QPointerEvent来自哪个设备。

获取属性 nameᅟ 的Getter。

__eq__(other)
Parameters:

其他QInputDevice

Return type:

布尔

static primaryKeyboard([seatName=""])
Parameters:

seatName – str

Return type:

QInputDevice

返回给定座位 seatName 上的核心或主键盘。

seatName()
Return type:

字符串

返回设备关联的座位(如果已知);否则为空。

供同一用户一起使用的设备可以配置为具有相同的座位名称。目前这仅在Wayland和X11平台上可行。

属性 seatNameᅟ 的获取器。

static seatNames()
Return type:

字符串列表

返回所有已注册输入设备(键盘和指向设备)的座位名称列表。

systemId()
Return type:

整数

返回平台特定的系统ID(例如在X11平台上的xinput ID)。

所有平台都应提供每个设备的唯一系统ID。

属性 systemIdᅟ 的获取器。

type()
Return type:

DeviceType

返回设备类型。

属性 typeᅟ 的获取器。