【问题标题】:Cant calibrate touchscreen on kivy无法在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,但没有任何变化。

那么我将如何“扩展”我的触摸输入区域?

【问题讨论】:

    标签: python python-3.x touch kivy calibration


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-04
        • 1970-01-01
        • 2011-11-18
        相关资源
        最近更新 更多