PySide6.QtGui.QInputDevice¶
- class QInputDevice¶
QInputDevice
类描述了生成QInputEvent
事件的设备。更多…继承自:
QPointingDevice
概要¶
属性¶
方法¶
def
__init__()
def
capabilities()
def
hasCapability()
def
name()
def
__eq__()
def
seatName()
def
systemId()
def
type()
信号¶
静态函数¶
def
devices()
def
seatNames()
注意
本文档可能包含从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
时,属性可以直接使用,否则通过访问器函数使用。- 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:
创建一个新的无效输入设备实例作为
parent
的子项。- __init__(name, systemId, type[, seatName=""[, parent=None]])
- Parameters:
name – str
systemId – int
type –
DeviceType
seatName – str
parent –
QObject
创建一个新的输入设备实例。给定的
name
通常是制造商分配的型号名称(如果可用),或其他可识别的名称;id
是一个平台特定的数字,每个设备都是唯一的(例如X11上的xinput ID);type
标识设备的类型。在能够同时处理来自多个用户或多组输入设备的窗口系统(如Wayland或X11)上,seatName
标识将一起使用的设备集的名称。如果设备是子设备或从属设备(例如可以轮流移动“核心指针”的多个鼠标之一),则应提供主设备作为parent
。平台插件创建、注册并继续拥有每个设备实例;通常即使特定设备没有主设备,也应出于内存管理目的提供
parent
。默认情况下,
capabilities()
是None
。返回此设备可以访问的
virtual desktop
内的区域。例如,
TouchScreen
输入设备固定在单个物理屏幕上,并且通常经过校准,使得该区域与geometry()
相同;而Mouse
可能可以访问虚拟桌面上的所有屏幕。Wacom绘图板可能被配置为映射到所有屏幕,或者仅映射到用户喜欢绘图的屏幕,或者映射到绘图发生的窗口。与触摸屏集成的Stylus
设备可能在物理上仅限于该屏幕。如果返回的矩形为null,则表示此设备可以访问整个虚拟桌面。
属性
availableVirtualGeometryᅟ
的获取器。属性
availableVirtualGeometryᅟ
的通知信号。- capabilities()¶
- Return type:
Capability
的组合
返回设备功能。
- static devices()¶
- Return type:
常量 QInputDevice 的列表
返回所有已注册输入设备(键盘和指向设备)的列表。
注意
设备列表在所有平台上并不总是完整的。到目前为止,最完整的信息在X11平台上可用,无论是在启动时还是在响应热插拔时。大多数其他平台只能在接收到事件后才能提供各种类型的通用设备;而且大多数平台在设备插入或运行时拔出时不会通知Qt。
注意
返回的列表不能用于添加新设备。要为自动化测试添加模拟触摸屏,可以使用QTest::createTouchDevice()。平台插件应在发现设备时调用QWindowSystemInterface::registerInputDevice()来添加设备。
返回设备功能是否包含给定的
capability
。- name()¶
- Return type:
字符串
返回设备名称。
此字符串可能为空。然而,在具有多个输入设备的系统上,它非常有用:可以用来区分
QPointerEvent
来自哪个设备。获取属性
nameᅟ
的Getter。- __eq__(other)¶
- Parameters:
其他 –
QInputDevice
- Return type:
布尔
- static primaryKeyboard([seatName=""])¶
- Parameters:
seatName – str
- Return type:
返回给定座位
seatName
上的核心或主键盘。- seatName()¶
- Return type:
字符串
返回设备关联的座位(如果已知);否则为空。
供同一用户一起使用的设备可以配置为具有相同的座位名称。目前这仅在Wayland和X11平台上可行。
属性
seatNameᅟ
的获取器。- static seatNames()¶
- Return type:
字符串列表
返回所有已注册输入设备(键盘和指向设备)的座位名称列表。
- systemId()¶
- Return type:
整数
返回平台特定的系统ID(例如在X11平台上的xinput ID)。
所有平台都应提供每个设备的唯一系统ID。
属性
systemIdᅟ
的获取器。- type()¶
- Return type:
返回设备类型。
属性
typeᅟ
的获取器。