校准

在 1.9.0 版本加入.

将输入设备重新校准到特定范围/偏移量。

假设你有3块1080p显示屏,其中前两块支持多点触控。默认情况下,两者都会混合触控,其范围会相互冲突:0-1的范围将对应到0-5760像素(记住,3 * 1920 = 5760)。

要修复这个问题,你需要手动引用它们。例如::

[input]
left = mtdev,/dev/input/event17
middle = mtdev,/dev/input/event15
# the right screen is just a display.

然后,您可以使用校准后处理模块:

[postproc:calibration]
left = xratio=0.3333
middle = xratio=0.3333,xoffset=0.3333

现在,来自左侧屏幕的触摸将位于0-0.3333范围内,而来自中间屏幕的触摸将位于0.3333-0.6666范围内。

您还可以根据设备的提供者类型来匹配校准规则。这在通过probesysfs匹配设备时非常有用。例如::

[input]
mtdev_%(name)s = probesysfs,provider=mtdev

然后,要对任何mtdev设备应用校准,您可以为括号内的提供者名称分配规则:

[postproc:calibration]
(mtdev) = xratio=0.3333,xoffset=0.3333

像这样校准设备意味着无需提前配置设备路径。请注意,使用此方法时,所有mtdev输入都将应用相同的校准。因此,在预期只有一个输入设备时,按提供者匹配通常更为有用。

class kivy.input.postproc.calibration.InputPostprocCalibration[源代码]

基类:object

重新校准输入。

配置必须放在名为 postproc:calibration 的节中。在该节内,您必须有一行类似以下内容的代码:

devicename = param=value,param=value

如果您希望按提供者进行匹配,则必须包含类似以下的行::

(provider) = param=value,param=value
参数:
xratio:浮点数

用于乘以X的值。

yratio:浮点数

用于乘以Y的值。

xoffset:浮点数

要添加到 X 的值

yoffset:浮点数

要添加到 Y 的值

auto: 字符串

如果设置,则触摸坐标将从屏幕相对坐标转换为窗口相对坐标。该值用作屏幕尺寸的指示,例如对于全高清(fullHD):

auto=1920x1080

如果存在此设置,它将覆盖所有其他设置。此设置假设输入设备完全覆盖显示区域,如果两者不同,计算结果将会出错。

在 1.11.0 版本发生变更: 添加了 auto 参数