class QInputDevice#

QInputDevice 类描述了一个起源自 QInputEvent 的设备。了解更多...

Inheritance diagram of 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

一种带滚轮的笔,用于调整《PySide6.QtGui.QTabletEvent.tangentialPressure》类的代码:tangentialPressure

QInputDevice.DeviceType.Puck

一种类似于平面鼠标并且带有透明十字线的圆形设备。

QInputDevice.DeviceType.Keyboard

键盘。

QInputDevice.DeviceType.AllDevices

上述任何一个(用作默认过滤值)。

class Capability#

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

常量

描述

QInputDevice.Capability.None

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

QInputDevice.Capability.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

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

QInputDevice.Capability.Hover

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

QInputDevice.Capability.Rotation

表示rotation信息可用。

QInputDevice.Capability.XTilt

表示对于X轴,可用tilt信息。

QInputDevice.Capability.YTilt

表示Y轴的tilt信息可用。

QInputDevice.Capability.TangentialPressure

表示可用的tangential pressure信息。

QInputDevice.Capability.ZPosition

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

QInputDevice.Capability.All

注意

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

propertyavailableVirtualGeometry:QRect#
访问函数
propertycapabilities:QDBusConnection.ConnectionCapability组合#
访问函数
propertyname:str#
访问函数
propertyseatName:str#
访问函数
propertysystemId:int#
访问函数
propertytype:QInputDevice.DeviceType#
访问函数
__init__([parent=None])#
参数:

parent - QObject

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

__init__(name, systemId, type[, seatName=""[, parent=None]])
参数:
  • name – 字符串

  • systemId – 整数

  • typeDeviceType

  • seatName – 字符串

  • parent - QObject

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

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

默认情况下,capabilities()None

availableVirtualGeometry()#
返回类型::

QRect

返回此设备可以访问的虚拟桌面内的区域。

例如,一个 TouchScreen 输入设备固定在单个物理屏幕上,并且通常校准,使该区域与 virtual desktop 相同;而一个 Mouse 可以访问虚拟桌面上的所有屏幕。Wacom 图形板可能配置为映射到所有屏幕,或只映射到用户喜欢在它上面创建绘图的屏幕,或映射到绘制发生的窗口。一个与触摸屏集成的 Stylus 设备可能物理上限制在在该屏幕上。

如果返回的矩形为空,这意味着此设备可以访问整个虚拟桌面。

属性 availableVirtualGeometry 的获取器。

availableVirtualGeometryChanged(area)#
参数:

areaQRect

属性 availableVirtualGeometry 发生的通知信号。

capabilities()#
返回类型::

Capability 的组合。

返回设备的特性。

静态 devices()#
返回类型::

const QInputDevice 列表。

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

注意

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

注意

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

hasCapability(cap)#
参数:

capCapability

返回类型::

bool

返回设备特性是否包括指定的 capability

name()#
返回类型::

str

返回设备名称。

此字符串可能为空。然而,在有多个输入设备的系统上很有用,它可以用来区分 QPointerEvent 是从哪个设备起源的。

属性 name 的获取器。

__eq__(other)#
参数:

otherQInputDevice

返回类型::

bool

静态 primaryKeyboard([seatName=""])#
参数:

seatName – 字符串

返回类型::

QInputDevice

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

seatName()#
返回类型::

str

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

打算由同一用户共同使用的设备可能被配置为具有相同的座位名称。目前仅在 Wayland 和 X11 平台上可行。

属性 seatName 复制品 的获取器。

静态 seatNames()#
返回类型::

字符串列表

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

systemId()#
返回类型::

整数

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

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

属性 systemId 复制品 的获取器。

type()#
返回类型::

设备类型

返回设备类型。

属性 type 复制品 的获取器。