【问题标题】:Qt - Capturing QKeyEvent from /dev/input/event1 in embedded linux device (EGLFS)Qt - 在嵌入式 linux 设备 (EGLFS) 中从 /dev/input/event1 捕获 QKeyEvent
【发布时间】: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


    【解决方案1】:

    我从来没有为任何嵌入式平台编程,但我发现QEvent::SockAct 是发生的事件

    套接字已激活,(并且它)用于实现QSocketNotifier

    那个

    QSocketNotifier 类提供对监控活动的支持 在文件描述符上。

    here

    我想如果你open() /dev/input/event1 你会得到这个文件描述符。我知道我没有提供完整的解决方案,但正如我所说,我从未做过这种编程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多