我正在尝试在使用自定义键盘 的 linux 嵌入式设备(EGLFS )上的 keypress/keyrelease 上获取QKeyEvents 。/dev/input/event1是关键事件文件。
使用evtest输出与预期一致。但是在 EGLFS 平台上运行的 Qt 应用程序中, 每当在自定义键盘上按下/释放键时,事件过滤器都会将事件类型检测为QEvent::SockAct 。预期的事件类型是我无法获得的QEvent::KeyPress/QEvent::KeyRelease 。
我尝试设置以下环境变量,
QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event1;grab=1 QT_QPA_GENERIC_PLUGINS=evdevmouse,evdevkeyboard
QT_QPA_PLATFORM=eglfs
QT_QPA_EGLFS_DISABLE_INPUT = 1
在设置这些变量之前,我无法在按键/释放时获得任何事件。但是在设置了这些之后,它被检测为 QEvent::SockAct。
请建议在按键/释放时获取 QKeyEvent 需要设置什么。在嵌入式 linux 上运行的Qt 版本 5.14 。