无法在 kivy 上校准触摸屏

Cant calibrate touchscreen on kivy

对于我的 pi 触摸屏项目,我正在使用 - 你猜对了 - pi 和 egalax 触摸驱动器。经过一些小的调整(如反转 y_axis 和东西)后,这个东西接收输入并且触摸屏实际工作。但是,此刻我无法触摸屏幕边缘的某个按钮,但我无法触及。我实际上使用了一支启用了光标的笔来确保我知道屏幕在哪里记录了我的输入。

所以在 kivy 文档中搜索了一下之后,我遇到了 this postproc.calibration 模块,它应该可以解决问题。

但事实并非如此。我尝试将以下 2 个代码片段放入 .kivy/config.ini 文件中:

[input]
egalax = hidinput,/dev/input/event0,rotation=90,invert_y=1

[postproc:calibration]
egalax = xratio=1.2,yratio=1.2

[input]位有效,没有问题。 [postproc:calibration] 位不起作用。我试过将此行放在 [postproc] 模块上方、下方,甚至 [modules] 模块下方。我也试过将 egalax = xratio=1.2,yratio=1.2 行放在 [postproc] 模块中。似乎没有用。我也尝试将浮点数增加到 2.0,但没有任何变化。

那么我如何'expand'我的触摸输入区域?

对于这个问题,我从这个来源找到了解决方案:Google group。澄清一下:它涉及更改 kivy 安装目录中的文件。

/usr/local/lib/python3.5/dist-packages/kivy/input/providers/hdinput.py中插入最后一行:

class HIDInputMotionEventProvider(MotionEventProvider):
    options = ('min_position_x', 'max_position_x',
               'min_position_y', 'max_position_y',
               'min_pressure', 'max_pressure',
               'invert_x', 'invert_y', 'rotation',
            -> 'min_abs_x', 'max_abs_x', 'min_abs_y', 'max_abs_y') # <- this one

然后在您的 .kivy/config.ini 文件中添加:

[input]
eGalax = hidinput,/dev/input/event1,rotation=90,min_abs_x=60,min_abs_y=90,max_abs_x=1985,max_abs_y=1970

至少我的触摸屏(一个 eGalax 的东西)已经校准了。

我有一个关于 Kivy & Waveshare 10.1 英寸触摸屏的答案。 须藤纳米 .kivy/config.ini。我需要 "param=rotation=90"

添加

[input]
mouse = mouse
mtdev_%(name)s = probesysfs,provider=mtdev
hid_%(name)s = probesysfs,provider=hidinput,param=rotation=90