- class QInputDevice#
QInputDevice
类描述了一个起源自QInputEvent
的设备。了解更多...继承自:
QPointingDevice
概要#
属性#
方法#
def
__init__()
def
capabilities()
def
hasCapability()
def
name()
def
__eq__()
def
seatName()
def
systemId()
def
type()
信号#
静态函数#
定义 devices()
定义 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
一种带滚轮的笔,用于调整《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
时,可以直接使用属性;否则使用访问函数。- propertycapabilities:QDBusConnection.ConnectionCapability组合#
- 访问函数
- propertyname:str#
- 访问函数
- propertyseatName:str#
- 访问函数
- propertysystemId:int#
- 访问函数
- propertytype:QInputDevice.DeviceType#
- 访问函数
创建一个新的无效输入设备实例,作为
parent
的子对象。- __init__(name, systemId, type[, seatName=""[, parent=None]])
- 参数:
name – 字符串
systemId – 整数
type –
DeviceType
seatName – 字符串
parent -
QObject
创建一个新的输入设备实例。如果可用,给定的
name
是通常由制造商分配的型号名称,否则是其他可识别的名称;id
是平台特定的数字,对于每个设备(例如 X11 的 xinput ID)将是唯一的;type
用于标识设备类型。在能够同时处理来自多个用户或输入设备组的输入的系统(如 Wayland 或 X11)中,seatName
识别将一起使用的设备组名称。如果设备是子设备或从设备(例如,轮换移动“核心指针”的几只鼠标中的一只),应将主设备作为parent
提供。平台插件创建、注册并持续拥有每个设备实例;通常,即使没有主设备,出于内存管理目的也应提供
parent
。默认情况下,
capabilities()
是None
。返回此设备可以访问的虚拟桌面内的区域。
例如,一个
TouchScreen
输入设备固定在单个物理屏幕上,并且通常校准,使该区域与virtual desktop
相同;而一个Mouse
可以访问虚拟桌面上的所有屏幕。Wacom 图形板可能配置为映射到所有屏幕,或只映射到用户喜欢在它上面创建绘图的屏幕,或映射到绘制发生的窗口。一个与触摸屏集成的Stylus
设备可能物理上限制在在该屏幕上。如果返回的矩形为空,这意味着此设备可以访问整个虚拟桌面。
属性
availableVirtualGeometry
的获取器。属性
availableVirtualGeometry
发生的通知信号。- capabilities()#
- 返回类型::
Capability
的组合。
返回设备的特性。
- 静态 devices()#
- 返回类型::
const QInputDevice 列表。
返回所有已注册输入设备(键盘和指针设备)的列表。
注意
在所有平台上,设备列表并不总是完整的。到目前为止,X11 平台上可获得最完整的信息,在启动时和在热插拔响应时。大多数其他平台只能提供各种类型的通用设备,只有在与它们的事件接收后才能提供;大多数平台在运行时不会告知 Qt 设备何时连接或拔出。
注意
返回的列表不能用来添加新的设备。为了为自动测试添加一个模拟触摸屏,可以使用 QTest::createTouchDevice()。平台插件应调用 QWindowSystemInterface::registerInputDevice() 以发现设备时添加设备。
- hasCapability(cap)#
- 参数:
cap –
Capability
- 返回类型::
bool
返回设备特性是否包括指定的
capability
。- name()#
- 返回类型::
str
返回设备名称。
此字符串可能为空。然而,在有多个输入设备的系统上很有用,它可以用来区分
QPointerEvent
是从哪个设备起源的。属性
name
的获取器。- __eq__(other)#
- 参数:
other –
QInputDevice
- 返回类型::
bool
- 静态 primaryKeyboard([seatName=""])#
- 参数:
seatName – 字符串
- 返回类型::
返回指定座位
seatName
上的核心或主键盘。- seatName()#
- 返回类型::
str
如果已知则返回与该设备关联的座位;否则为空。
打算由同一用户共同使用的设备可能被配置为具有相同的座位名称。目前仅在 Wayland 和 X11 平台上可行。
属性
seatName 复制品
的获取器。- 静态 seatNames()#
- 返回类型::
字符串列表
返回所有已注册的输入设备(键盘和指针设备)的座位名称列表。
- systemId()#
- 返回类型::
整数
返回特定于平台的系统 ID(例如,X11 平台上的 xinput ID)。
预计所有平台应为每个设备提供一个唯一的系统 ID。
属性
systemId 复制品
的获取器。返回设备类型。
属性
type 复制品
的获取器。