它适用于我:
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
export QT_QPA_EVDEV_MOUSE_PARAMETERS=grab=1
并运行:
sudo -E ./myapp -platform eglfs
我认为sudo是必要的,因为文档中有关/dev/input/event*权限的内容。还-E需要选项,以便 sudo 保留导出的变量。
我希望这会有所帮助。
用于嵌入式 Linux 的 Qt
输入
当不存在窗口系统时,鼠标、键盘和触摸输入直接通过 evdev 或使用帮助库(如 libinput 或 tslib)读取。请注意,这要求用户可以读取设备节点 /dev/input/event*。eglfs 和 linuxfb 已编译所有输入处理代码。
我想分享有关我之前回复的其他信息:
这是我防止鼠标和键盘事件从我的应用程序传递到终端和 X11 系统的导出列表:
export QT_QPA_EGLFS_PHYSICAL_WIDTH=155
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=86
export QT_QPA_EGLFS_WIDTH=1024
export QT_QPA_EGLFS_HEIGHT=614
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
export QT_QPA_EVDEV_MOUSE_PARAMETERS=grab=1
export QT_QPA_EGLFS_NO_LIBINPUT=1
请注意,这export QT_QPA_EGLFS_NO_LIBINPUT=1是必要的,因此 Qt 自己的evdev处理程序会发挥作用,因此QT_QPA_EVDEV*会考虑选项。这是我可以验证的。
用于嵌入式 Linux 的 Qt
使用 libinput
... 如果 libinput 支持不可用或QT_QPA_EGLFS_NO_LIBINPUT设置了环境变量,Qt 自己的 evdev 处理程序就会发挥作用。
另外,作为评论,我尝试了这种配置,首先是使用相同的 USB(罗技)控制的鼠标和键盘,就像这样:键盘工作正常,但鼠标不行。所以我决定尝试使用独立的鼠标和键盘,现在两者(鼠标和键盘)都能正常工作。
我也不必使用SUDOor运行我的应用程序SUDO -E,因为该目录/dev/input/event*具有该组的读/写权限,'input'并且我的用户是该组的一部分。
问候!