首页 > 解决方案 > 从树莓中的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)”以避免在 cli 中出现“无法打开 vchiq 实例”错误我也可以运行 Kivy 应用程序 - 应用程序打开,但我没有鼠标移动,点击或触摸任何东西。直接从 cli 运行 Kivy 应用程序时没有错误,只是没有鼠标或触摸。

任何想法:

谢谢!!!

标签: kivyraspberry-pi3multi-touch

解决方案


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


推荐阅读