- 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()定义
uniqueId()定义
x()定义
xTilt()定义
y()定义
yTilt()定义
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)#
- 参数:
arg__1 –
QTabletEvent
- __init__(t, device, pos, globalPos, pressure, xTilt, yTilt, tangentialPressure, rotation, z, keyState, button, buttons)
- 参数:
t –
Typedevice –
QPointingDevicepos –
QPointFglobalPos –
QPointFpressure – float
xTilt – float
yTilt – float
tangentialPressure – float
rotation – float
z – float
keyState – 的组合
KeyboardModifierbutton – 的组合
MouseButtonbuttons – 的组合
MouseButton
构建给定类型的事件的平板电脑事件。
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__()#
- 返回类型:
对象
请使用
globalPosition().toPoint()代替。返回设备在事件发生时的全局位置。这在异步窗口系统(如X11)中很重要;每当您根据鼠标事件移动小部件时,globalPos()可能与当前位置
pos()存在显著差别。请使用
globalPosition()代替。返回设备在事件发生时的全局位置。这在异步窗口系统(如X11)中很重要;每当您根据鼠标事件移动小部件时,globalPosF()可能与当前位置pos()存在显著差别。另请参阅
- globalX()#
- 返回类型:
int
注意:
此函数已弃用。
请使用
globalPosition()。用x()代替。返回鼠标指针在事件发生时的全局X位置。
另请参阅
- globalY()#
- 返回类型:
int
注意:
此函数已弃用。
请使用
globalPosition()用y()代替。返回平板设备在事件发生时的全局Y位置。
另请参阅
- hiResGlobalX()#
- 返回类型:
float
注意:
此函数已弃用。
- hiResGlobalY()#
- 返回类型:
float
注意:
此函数已弃用。
请使用
position().toPoint()代替。返回设备的相对位置,相对于接收事件的窗口小部件。
如果您在鼠标事件响应中移动小部件,请使用
globalPos()而不是此函数。另请参阅
x()y()globalPos()- posF()
- 返回类型:
注意:
此函数已弃用。
请使用
position()代替。返回设备的相对位置,相对于接收事件的窗口小部件。
如果您在鼠标事件响应中移动小部件,请使用
globalPosF()而不是此函数。另请参阅
- pressure()
- 返回类型:
float
返回设备压力。0.0表示钢笔不在平板电脑上,1.0表示钢笔的最大压力量。
另请参阅
- rotation()
- 返回类型:
float
以度为单位返回当前工具的旋转角度,其中0表示钢笔的尖端指向平板电脑顶部,正值表示向右旋转,负值表示向左旋转。这可以由4D鼠标或具有旋转功能的钢笔(如Wacom Art Pen或Apple Pencil)提供。如果设备不支持旋转,此值始终为0.0。
- tangentialPressure()
- 返回类型:
float
返回设备的长压力。这通常由喷枪工具上的手指轮提供。范围从-1.0到1.0。0.0表示中性位置。当前的喷枪只能从中性位置开始向正方向移动。如果设备不支持长压力,此值始终为0.0。
- uniqueId()
- 返回类型:
int
注意:
此函数已弃用。
请使用
pointingDevice().uniqueId()代替。返回当前设备的唯一ID,使您能够在平板电脑上区分同时使用的多个设备。
此功能的支持取决于平板电脑。
同一设备的值可能因操作系统而异。
Linux版本的Wacom驱动程序的新版本现在将报告ID信息。如果您有支持唯一ID的平板电脑但在Linux上未收到信息,请考虑升级您的驱动程序。
自Qt 4.2起,唯一ID不随笔的朝向而异。早期版本在有些操作系统中使用橡皮头比使用笔头时报告的值不同。
另请参阅
pointerType()- x()#
- 返回类型:
int
注意:
此函数已弃用。
使用
position().x()替代。返回设备相对于接收到事件的窗口的x坐标位置。
- xTilt()#
- 返回类型:
float
返回设备(例如笔)与x轴方向的垂直线之间的角度。正值表示指向平板的物理右侧。角度范围在-60到+60度之间。
- y()#
- 返回类型:
int
注意:
此函数已弃用。
使用
position().y()替代。返回设备相对于接收到事件的窗口的y坐标位置。
- yTilt()#
- 返回类型:
float
返回设备(例如笔)与y轴方向的垂直线之间的角度。正值指向平板的底部。角度在-60到+60度之间。
- z()#
- 返回类型:
float
返回设备的z坐标。通常这代表4D鼠标上的滚轮。如果设备不支持Z轴,此值始终为零。这**并非**压力值。