Kivy on_release 在触摸屏上不工作 - SDL 问题?

Kivy on_release not working on touchscreen - SDL issue?

我已经使用 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零W,Raspbian巴斯特w/Desktop和一个Hyperpixel 4.0方屏

谢谢!

我也遇到了同样的问题。我正在使用 Kivy 1.11.1,SDL 在 dpkg 中报告为 2.0.9+dfsg1-1+rpt1。我读到这在以后的 SDL 版本中已修复,但我还没有弄清楚如何升级它。如果您提取 SDL RPI tarball,请小心,因为在我的系统上它破坏了 /usr 权限(并且没有升级 dpkg 报告的版本)。 如果我 运行 mtdev-test(参见 google),触摸屏事件会顺利通过。 运行ning kivy apps时,触摸屏事件似乎有延迟,与330错误报告一致。 Press/release 似乎有效,但运动事件不稳定。 对于我的触摸屏,错误问题可以通过 kivy 示例 demo/touchtracer 得到很好的演示,它在 USB 鼠标上运行良好,但在触摸屏上却很糟糕。

所以 SDL 错误似乎在 Raspberry Pi OS 的最新版本中消失了(与 Raspbian Buster 相反)。

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

Issue raised on GitHub here