- 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 –
Type
device –
QPointingDevice
pos –
QPointF
globalPos –
QPointF
pressure – float
xTilt – float
yTilt – float
tangentialPressure – float
rotation – float
z – float
keyState – 的组合
KeyboardModifier
button – 的组合
MouseButton
buttons – 的组合
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轴,此值始终为零。这**并非**压力值。