无法在kivy上校准触摸屏
Posted
技术标签:
【中文标题】无法在kivy上校准触摸屏【英文标题】:Cant calibrate touchscreen on kivy 【发布时间】:2018-04-11 13:51:48 【问题描述】:对于我的 pi 触摸屏项目,我正在使用一个 - 你猜对了 - pi 和一个 egalax 触摸驱动程序。这个东西接收输入,触摸屏实际工作,经过一些小的调整,比如反转 y_axis 和其他东西。然而,此时我被困在试图触摸屏幕边缘的某个按钮,而我无法触及。我实际上使用了一支启用了光标的笔,以确保我知道屏幕在哪里注册了我的输入。
所以在 kivy 文档中搜索了一下后,我发现了 this postproc.calibration 模块,它应该可以解决问题。
但事实并非如此。我尝试将以下 2 个代码 sn-ps 放入 .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,但没有任何变化。
那么我将如何“扩展”我的触摸输入区域?
【问题讨论】:
【参考方案1】:对于这个问题,我从以下来源找到了解决方案: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 的东西)已经过校准。
【讨论】:
【参考方案2】:我有一个关于 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
【讨论】:
以上是关于无法在kivy上校准触摸屏的主要内容,如果未能解决你的问题,请参考以下文章
触摸屏校准 Linux、Arch、EloTouch xinput_calibrator 符号查找错误