PySide6.QtGui.QTabletEvent¶
- class QTabletEvent¶
QTabletEvent类包含描述平板事件的参数。更多…概要¶
方法¶
def
__init__()def
__repr__()def
globalPos()def
globalPosF()def
globalX()def
globalY()def
hiResGlobalX()def
hiResGlobalY()def
pos()def
posF()def
pressure()def
rotation()def
uniqueId()def
x()def
xTilt()def
y()def
yTilt()def
z()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
平板事件是由平板外设生成的,例如Wacom平板和各种其他品牌,以及某些类型平板电脑附带的电磁笔设备。(这与
QTouchEvent不同,后者是由触摸屏生成的,即使是在触摸屏上使用被动笔时也是如此。)平板事件与鼠标事件类似;例如,
x()、y()、pos()、globalX()、globalY()和globalPos()访问器提供光标位置,您可以看到哪些buttons()被按下(将触笔尖端按在平板表面相当于按下鼠标左键)。但平板事件还传递了一些平板设备驱动程序提供的额外信息;例如,您可能希望使用更高分辨率的坐标进行亚像素渲染(globalPosF()),根据工具对平板表面的pressure()调整颜色亮度,根据使用的工具类型使用不同的画笔(deviceType()),根据工具相对于平板表面的X轴和Y轴倾斜度以某种方式调整画笔形状(xTilt()和yTilt()),如果用户切换到双头触笔的另一端,则使用虚拟橡皮擦而不是画笔(pointerType())。每个事件都包含一个接受标志,表示接收者是否想要该事件。如果您处理了平板事件,您应该调用QTabletEvent::accept();否则,它将被发送到父部件。例外情况是TabletEnterProximity和TabletLeaveProximity事件:这些事件仅发送到QApplication,并且不检查它们是否被接受。
QWidget::setEnabled() 函数可用于启用或禁用小部件的鼠标、平板电脑和键盘事件。
事件处理程序 QWidget::tabletEvent() 接收 TabletPress、TabletRelease 和 TabletMove 事件。Qt 会首先发送一个平板事件,如果没有被任何小部件接受,它将发送一个鼠标事件。这使得未为平板设计的应用程序用户能够像使用鼠标一样使用平板。然而,高分辨率绘图应用程序应该处理平板事件,因为它们可以以更高的频率发生,这对于平滑和精确的绘图是有益的。如果平板事件被拒绝,为了提高效率,合成的鼠标事件可能会被压缩。
请注意,当触控笔悬停在数位板上时按下触控笔按钮会在某些类型的数位板上生成按钮按下事件,而在其他类型的数位板上,则需要将触控笔按压在数位板表面才能注册同时的触控笔按钮按下事件。
X11 用户注意事项¶
如果平板电脑在xorg.conf中配置为使用Wacom驱动程序,将会为触控笔、橡皮擦以及(可选)光标和触摸板分别创建独立的XInput“设备”。Qt通过它们的名称来识别这些设备。否则,如果平板电脑配置为使用evdev驱动程序,则只会有一个设备,应用程序可能无法区分触控笔和橡皮擦。
Windows用户注意事项¶
平板支持目前需要安装提供DLL
wintab32.dll的WACOM Windows驱动程序。它包含在较旧的包中,例如pentablet_5.3.5-3.exe。- __init__(arg__1)¶
- Parameters:
arg__1 –
QTabletEvent
- __init__(t, device, pos, globalPos, pressure, xTilt, yTilt, tangentialPressure, rotation, z, keyState, button, buttons)
- Parameters:
t –
类型设备 –
QPointingDevicepos –
QPointFglobalPos –
QPointFpressure – 浮点数
xTilt – 浮点数
yTilt – 浮点数
tangentialPressure – 浮点数
rotation – 浮点数
z – 浮点数
keyState –
KeyboardModifier的组合button –
MouseButtonbuttons –
MouseButton的组合
构造一个给定
type的平板事件。pos参数指示事件在小部件中的发生位置;globalPos是绝对坐标中的对应位置。pressure给出了施加在设备dev上的压力。xTilt和yTilt分别给出了设备相对于x轴和y轴的倾斜程度。keyState指定了哪些键盘修饰键被按下(例如,Ctrl)。z参数提供了设备在平板上的 Z 坐标;这通常由 4D 鼠标上的滚轮提供。如果设备不支持 Z 轴(即capabilities()不包括ZPosition),请在此处传递0。tangentialPressure参数提供了来自喷枪的切向压力拇指轮值。如果设备不支持切向压力(即capabilities()不包含TangentialPressure),请在此处传递0。rotation提供设备的旋转角度(以度为单位)。4D鼠标、Wacom Art Pen和Apple Pencil支持旋转。如果设备不支持旋转(即capabilities()不包括Rotation),请在此处传递0。导致事件的
button作为Qt::MouseButton枚举的值给出。如果事件的type不是TabletPress或TabletRelease,则此事件的适当按钮是Qt::NoButton。buttons是事件发生时所有按钮的状态。另请参阅
pos()globalPos()device()pressure()xTilt()yTilt()uniqueId()rotation()tangentialPressure()z()- __repr__()¶
- Return type:
字符串
使用
globalPosition().toPoint() 代替。返回设备在事件发生时的全局位置。这在像X11这样的异步窗口系统中非常重要;每当你响应鼠标事件移动小部件时,globalPos()可能与当前位置
pos()有显著差异。请使用
globalPosition()代替。返回设备在事件发生时的全局位置。这在像X11这样的异步窗口系统中非常重要;每当你根据鼠标事件移动小部件时,globalPosF()可能与当前位置pos()有显著差异。另请参阅
- globalX()¶
- Return type:
整数
注意
此函数已弃用。
使用
globalPosition()的x()代替。返回事件发生时鼠标指针的全局x位置。
另请参阅
- globalY()¶
- Return type:
整数
注意
此函数已弃用。
使用
globalPosition().y()代替。返回事件发生时平板设备的全局y位置。
另请参阅
- hiResGlobalX()¶
- Return type:
浮点数
注意
此函数已弃用。
- hiResGlobalY()¶
- Return type:
浮点数
注意
此函数已弃用。
使用
position().toPoint() 代替。返回设备的位置,相对于接收到事件的小部件。
如果您在响应鼠标事件时移动小部件,请使用
globalPos()而不是此函数。另请参阅
使用
position()代替。返回设备的位置,相对于接收到事件的小部件。
如果您在响应鼠标事件时移动小部件,请使用
globalPosF()而不是此函数。另请参阅
- pressure()¶
- Return type:
浮点数
返回设备的压力值。0.0 表示触笔未在平板上,1.0 表示触笔的最大压力值。
另请参阅
- rotation()¶
- Return type:
浮点数
返回当前工具的旋转角度(以度为单位),其中零表示触控笔的尖端指向数位板的顶部,正值表示向右旋转,负值表示向左旋转。这可以由4D鼠标或支持旋转的触控笔(如Wacom Art Pen或Apple Pencil)提供。如果设备不支持旋转,此值始终为0.0。
- tangentialPressure()¶
- Return type:
浮点数
返回设备的切向压力。这通常由喷笔工具上的手指轮给出。范围从-1.0到1.0。0.0表示中立位置。当前的喷笔只能从中立位置向正方向移动。如果设备不支持切向压力,此值始终为0.0。
- uniqueId()¶
- Return type:
整数
注意
此函数已弃用。
请使用
pointingDevice().uniqueId() 代替。返回当前设备的唯一ID,使得在平板电脑上同时使用的多个设备之间能够进行区分。
此功能的支持取决于平板电脑。
同一设备的值可能因操作系统而异。
Linux 的 Wacom 驱动程序的最新版本现在将报告 ID 信息。如果您有一个支持唯一 ID 的平板电脑,并且在 Linux 上没有获取到信息,请考虑升级您的驱动程序。
自 Qt 4.2 起,无论笔的方向如何,唯一 ID 都是相同的。在早期版本中,在某些操作系统上使用手写笔的橡皮擦端与笔端时,会报告不同的值。
另请参阅
pointerType()- x()¶
- Return type:
整数
注意
此函数已弃用。
使用
position().x() 代替。返回设备相对于接收到事件的小部件的x位置。
- xTilt()¶
- Return type:
浮点数
返回设备(例如笔)与垂直于x轴方向之间的角度。正值朝向平板的物理右侧。角度范围在-60到+60度之间。
- y()¶
- Return type:
整数
注意
此函数已弃用。
使用
position().y() 代替。返回设备相对于接收到事件的小部件的y位置。
- yTilt()¶
- Return type:
浮点数
返回设备(例如笔)与垂直于y轴方向之间的角度。正值朝向平板电脑的底部。角度范围在-60到+60度之间。
- z()¶
- Return type:
浮点数
返回设备的z位置。通常这由4D鼠标上的一个滚轮表示。如果设备不支持Z轴,此值始终为零。这与压力不同。