它适用于我:
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 保留导出的变量。
希望对你有所帮助。
Qt for Embedded Linux
输入
当不存在窗口系统时,鼠标、键盘和触摸输入直接通过 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* 选项会考虑在内。这是我可以验证的。
Qt for Embedded Linux
使用 libinput
... 如果 libinput 支持不可用或设置了环境变量QT_QPA_EGLFS_NO_LIBINPUT,Qt 自己的 evdev 处理程序就会发挥作用。
另外,作为评论,我尝试了这种配置,首先使用相同的 USB (Logitech) 控制的鼠标和键盘,就像这样:键盘工作正常,但鼠标不工作。所以我决定尝试使用独立的鼠标和键盘,现在两者(鼠标和键盘)都能正常工作。
我也不必使用SUDO 或SUDO -E 运行我的应用程序,因为目录/dev/input/event* 对'input' 组具有读/写权限,而我的用户属于该组。
问候!