我正在尝试在linux (EGLFS)上安装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,万用键盘 QT_QPA_PLATFORM=eglfs QT_QPA_EGLFS_DISABLE_INPUT =1
在设置这些变量之前,我无法在键发布/发布上获得任何事件。但是在设置这些之后,它被检测为QEvent::SockAct。
请建议哪些需要设置,以获得QKeyEvent的关键新闻/发布。运行在嵌入式linux上的Qt版本5.14。
发布于 2021-10-22 15:41:55
我从未为任何嵌入式平台编写过程序,但我发现QEvent::SockAct是在
套接字激活,(以及它)用于实现
QSocketNotifier。
那就是
QSocketNotifier类为监视文件描述符上的活动提供了支持。
我想,如果您使用open() /dev/input/event1,您将得到这个文件描述符。我知道我没有提供完整的解决方案,但正如我所说,我从来没有做过这样的编程。
https://stackoverflow.com/questions/69614948
复制相似问题