【问题标题】:Kivy on_release not working on touchscreen - SDL issue?Kivy on_release 在触摸屏上不起作用 - SDL 问题?
【发布时间】:2020-04-15 11:29:38
【问题描述】:

我使用 Kivy 开发了一个基本应用程序,但 on_release 在我的按钮绑定上无法正常工作。我每次都可以让on_press 工作,但on_release 偶尔工作(可能是十分之一到二十次),有时在屏幕的不同部分工作,而不是你触摸过的地方。

我非常有信心这不是编码问题,其中一位 Kivy 开发人员说这不是一个已知问题,应该可以解决,但他们没有说我可以在哪里进行更深入的研究。

与此同时,我在终端中收到了 SDL 错误: INFO: The key you just pressed is not recognized by SDL. To help get this fixed, please report this to the SDL forums/mailing list <https://discourse.libsdl.org/> EVDEV KeyCode 330

这会在触摸和释放时出现。 EVDEV 建议升级到 SDL2,我这样做了,但它并没有解决如果不是因为它创建的垃圾邮件,显然可以忽略的错误。

我不确定这两个问题是否相关,但不知道从哪里着手进行故障排除。

谁能帮忙我可以按照哪些步骤来尝试解决这个问题?

我主要想修复on_release,但如果我们修复了过程中的其他错误,那也很棒。

我正在运行 Raspberry Pi Zero W、Raspbian Buster w/Desktop 和 Hyperpixel 4.0 方形屏幕

谢谢!

【问题讨论】:

  • SDL 密钥错误是否与按钮故障相关?所有应用都会出现这种情况吗?
  • 我为此创建了一个小型测试应用程序,但问题仍然存在,是的,所有应用程序。与失败和错误没有关联。无论如何,每次按下和发布时都会出现错误。谢谢
  • 您是通过 SSH 运行应用程序,还是直接通过连接到 Pi 的键盘?
  • SSH,但应用在连接的触摸屏上运行
  • 只是重新审视这个,因为我仍然没有解决方案。 SDL 错误实际上已经出现在最新版本的 RPi OS 中,但仍然只是偶尔出现 on_release

标签: python raspberry-pi kivy sdl touchscreen


【解决方案1】:

因此,SDL 错误似乎在最新版本的 Raspberry Pi OS(与 Raspbian Buster 不同)中消失了。

on_release 的问题原来是 Kivy 在/.kivy/config.ini 中的[postproc:calibration] 设置的问题。我正在使用那里的设置来反转触摸,因为我的提供者已经反转了 x,y 坐标。问题是 kivy 似乎没有使用 on_touch_up 的反转设置,只使用 on_touch_down,因此不调度 on_release。

Issue raised on GitHub here

【讨论】:

  • 这个问题在最新的 rpi 操作系统中又烦人了
【解决方案2】:

我也遇到了同样的问题。我正在使用带有 SDL 的 Kivy 1.11.1 在 dpkg 中报告为 2.0.9+dfsg1-1+rpt1。我已经读到这在以后的 SDL 版本中已修复,但我还没有弄清楚如何升级它。提取 SDL RPI tarball 时要小心,因为在我的系统上它破坏了 /usr 权限(并且没有升级 dpkg 报告的版本)。 如果我运行 mtdev-test(参见 google),触摸屏事件会顺利通过。运行 kivy 应用程序时,触摸屏事件似乎滞后,与 330 错误报告一致。新闻/发布似乎有效,但运动事件是不稳定的。 在我的触摸屏上,可以通过 kivy 示例演示/触摸跟踪器很好地演示错误问题,它在 USB 鼠标上效果很好,但在触摸屏上很糟糕。

【讨论】:

  • 我升级到最新的 SDL 并没有解决错误或发布问题。 mtdev-test 还为我显示所有事件,但 on_release 在 Kivy 中不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 2014-04-27
相关资源
最近更新 更多