【发布时间】:2021-12-05 10:37:23
【问题描述】:
我正在尝试在使用自定义键盘的 linux 嵌入式设备 (EGLFS) 上的 keypress/keyrelease 上获取 QKeyEvents。 /dev/input/event1是keyevent文件。
使用 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 需要设置什么。 Qt 版本 5.14 在嵌入式 linux 上运行。
【问题讨论】:
标签: c++ qt5 embedded-linux qkeyevent eglfs