class QTabletEvent#

QTabletEvent 类包含描述平板事件参数。 更多

Inheritance diagram of PySide6.QtGui.QTabletEvent

概述#

方法#

注意:

这份文档可能包含从 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__1QTabletEvent

__init__(t, device, pos, globalPos, pressure, xTilt, yTilt, tangentialPressure, rotation, z, keyState, button, buttons)
参数:

构建给定类型的事件的平板电脑事件。

pos 参数表示事件在部件中发生的位置; globalPos 是绝对坐标系中的对应位置。

pressure 表示对设备 dev 施加的压力。

xTiltyTilt 分别表示设备在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 是事件发生时的所有按钮的状态。

__repr__()#
返回类型:

对象

globalPos()#
返回类型:

QPoint

注意:

此函数已弃用。

请使用 globalPosition() .toPoint()代替。

返回设备在事件发生时的全局位置。这在异步窗口系统(如X11)中很重要;每当您根据鼠标事件移动小部件时,globalPos()可能与当前位置pos()存在显著差别。

另请参阅

globalX() globalY()

globalPosF()#
返回类型:

QPointF

注意:

此函数已弃用。

请使用globalPosition()代替。返回设备在事件发生时的全局位置。这在异步窗口系统(如X11)中很重要;每当您根据鼠标事件移动小部件时,globalPosF()可能与当前位置pos()存在显著差别。

另请参阅

posF()

globalX()#
返回类型:

int

注意:

此函数已弃用。

请使用globalPosition()。用x()代替。

返回鼠标指针在事件发生时的全局X位置。

另请参阅

globalY() globalPos()

globalY()#
返回类型:

int

注意:

此函数已弃用。

请使用globalPosition()y()代替。

返回平板设备在事件发生时的全局Y位置。

另请参阅

globalX() globalPos()

hiResGlobalX()#
返回类型:

float

注意:

此函数已弃用。

hiResGlobalY()#
返回类型:

float

注意:

此函数已弃用。

pos()#
返回类型:

QPoint

注意:

此函数已弃用。

请使用position().toPoint()代替。

返回设备的相对位置,相对于接收事件的窗口小部件。

如果您在鼠标事件响应中移动小部件,请使用globalPos()而不是此函数。

另请参阅

x() y() globalPos()

posF()
返回类型:

QPointF

注意:

此函数已弃用。

请使用position()代替。

返回设备的相对位置,相对于接收事件的窗口小部件。

如果您在鼠标事件响应中移动小部件,请使用globalPosF()而不是此函数。

另请参阅

globalPosF()

pressure()
返回类型:

float

返回设备压力。0.0表示钢笔不在平板电脑上,1.0表示钢笔的最大压力量。

另请参阅

tangentialPressure()

rotation()
返回类型:

float

以度为单位返回当前工具的旋转角度,其中0表示钢笔的尖端指向平板电脑顶部,正值表示向右旋转,负值表示向左旋转。这可以由4D鼠标或具有旋转功能的钢笔(如Wacom Art Pen或Apple Pencil)提供。如果设备不支持旋转,此值始终为0.0。

tangentialPressure()
返回类型:

float

返回设备的长压力。这通常由喷枪工具上的手指轮提供。范围从-1.0到1.0。0.0表示中性位置。当前的喷枪只能从中性位置开始向正方向移动。如果设备不支持长压力,此值始终为0.0。

注意:

该值存储为单精度浮点数。

另请参阅

pressure()

uniqueId()
返回类型:

int

注意:

此函数已弃用。

请使用pointingDevice() .uniqueId()代替。

返回当前设备的唯一ID,使您能够在平板电脑上区分同时使用的多个设备。

此功能的支持取决于平板电脑。

同一设备的值可能因操作系统而异。

Linux版本的Wacom驱动程序的新版本现在将报告ID信息。如果您有支持唯一ID的平板电脑但在Linux上未收到信息,请考虑升级您的驱动程序。

自Qt 4.2起,唯一ID不随笔的朝向而异。早期版本在有些操作系统中使用橡皮头比使用笔头时报告的值不同。

另请参阅

pointerType()

x()#
返回类型:

int

注意:

此函数已弃用。

使用position() .x()替代。

返回设备相对于接收到事件的窗口的x坐标位置。

另请参阅

y() pos()

xTilt()#
返回类型:

float

返回设备(例如笔)与x轴方向的垂直线之间的角度。正值表示指向平板的物理右侧。角度范围在-60到+60度之间。

../../_images/qtabletevent-tilt.png

注意:

该值存储为单精度浮点数。

另请参阅

yTilt()

y()#
返回类型:

int

注意:

此函数已弃用。

使用position() .y()替代。

返回设备相对于接收到事件的窗口的y坐标位置。

另请参阅

x() pos()

yTilt()#
返回类型:

float

返回设备(例如笔)与y轴方向的垂直线之间的角度。正值指向平板的底部。角度在-60到+60度之间。

注意:

该值存储为单精度浮点数。

另请参阅

xTilt()

z()#
返回类型:

float

返回设备的z坐标。通常这代表4D鼠标上的滚轮。如果设备不支持Z轴,此值始终为零。这**并非**压力值。

注意:

该值存储为单精度浮点数。

另请参阅

pressure()