从树莓中的 cli 运行的 kivy 应用程序中没有鼠标移动或触摸

问题描述

我刚刚开始使用 Kivy - 我在使用鼠标和(多)触摸功能时遇到了问题。 设置:RPi 3b v1.2,RaspBerry os buster 5.4 with desktop & python 3.7.3,使用 Waveshare DSI 触摸屏 已安装 Waveshare 显示驱动程序:https://github.com/waveshare/LCD-show

Kivy 安装在 virtualenv 中,我以 source /home/wannes/kivy_venv/bin/activate 开头('wannes' 是我的用户名) Kivy 示例在 ~/.local/share/kivy-examples/demo/showcase

我已将此添加到 ~/.kivy/config.ini:

[modules]
touchring = show_cursor=true
[input]
mouse = mouse
#%(name)s = probesysfs,provider=hidinput
mtdev_%(name)s = probesysfs,provider=mtdev
hid_%(name)s = probesysfs,provider=hidinput

在 gui 上运行 Kivy 应用程序时(使用 ef Kivy 展示示例应用程序),我可以四处移动并用鼠标单击,但不能使用触摸或多点触控功能 - 我可以通过鼠标右键单击来模拟。

我一直在环顾四周,并尝试使用“xhost +local:root”命令 - 这给了我一个错误:“xhost:无法打开显示”“”

为了在 clu 中运行 Kivy,我执行了“sudo usermod -a -G video $(whoami)”以避免“无法打开 vchiq 实例”错误 在 cli 中,我也可以运行 Kivy 应用程序 - 应用程序打开,但我没有鼠标移动、点击或触摸任何东西。 直接从 cli 运行 Kivy 应用程序时,没有错误,只是没有鼠标或触摸。

任何想法:

  • 为什么在 x 中运行 Kivy 时没有鼠标点击或(多)触摸功能
  • 为什么从 cli 运行 Kivy 应用程序时甚至没有鼠标移动?

谢谢!!!

解决方法

找到了解决方案。 首先,waveshare 驱动程序必须与 pi 用户一起设置,而不是其他任何人 - 在他们的驱动程序设置文件中,用户 pi 是硬编码的...... 然后,您想要运行 Kivy 应用程序的用户(除了 pi)必须是“输入”组的成员: sudo usermod -a -G input $(whoami) Kivy 需要访问 /dev/input/event0 /event4 和 /event5 Waveshare 设置仅授予 pi 用户访问输入组的权限,该组对这些设备具有读取权限。 问题已解决 - 至少 Waveshare 提供的有关设置其触摸驱动程序的文档很少。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...