kivy - 从树莓中的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 应用程序时没有错误,只是没有鼠标或触摸。
任何想法:
- 为什么在 x 中运行 Kivy 时没有鼠标单击或(多点)触摸功能
- 为什么从 cli 运行 Kivy 应用程序时甚至没有鼠标移动?
谢谢!!!
解决方案
找到了解决方案。首先,waveshare 驱动程序必须与 pi 用户一起设置,而不是任何其他用户 - 在他们的驱动程序设置文件中,用户 pi 是硬编码的......然后,您想要运行 Kivy 应用程序的用户(除 pi 之外),必须是“输入”组的成员: sudo usermod -a -G input $(whoami) Kivy 需要访问 /dev/input/event0 /event4 和 /event5 Waveshare 设置只允许 pi 用户访问输入组,具有对这些设备的读取权限。问题已解决 - 至少 Waveshare 几乎没有关于设置其触摸驱动程序的文档。
推荐阅读
- javascript - 使用 Promise 和 foreach 异步返回
- node.js - 如何在不使用 npx 的情况下使用 npm-force-resolutions 强制 npm 依赖项?
- node.js - Node.js 中的 HTTP/2 POST 请求
- python - 是否有一个 python 函数可以为我提供“最小列表”?
- python - 如何使用 pythonic 代码在目录中查找特定文件?
- python-3.x - 使用 python 的 dbus 模块,是否可以更新通知的内容而不会再次弹出?
- r - R shinydashboard 嵌套框在展开时未呈现最初折叠主框
- css - Tailwind css Grid 在 Reactjs 中不起作用?
- java - 在队列声明错误时退出 Spring RabbitMQ 应用程序
- javascript - SuiteScript 2.0:根据选定的帐户行将搜索结果动态添加到自定义列列表