从树莓中的 cli 运行的 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)”以避免“无法打开 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 提供的有关设置其触摸驱动程序的文档很少。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?