如何在Linux上使用Qt捕获GPIO按钮事件

时间:2019-01-24 13:01:55

标签: qt embedded-linux

我需要捕捉嵌入式Linux板上运行的Qt / QML应用程序中的GPIO按钮按键。

从系统角度讲,事件可以由evtest识别,但是在installEventFilter()上通过QGuiApplication安装事件过滤器后,我每次只能按两次获得QEvent::SockAct个事件。

Qt可能监听文件描述符并获取通知,但它们不会转换为QKeyEvent

我正在运行具有以下变量集的应用程序:

export QWS_KEYBOARD="LinuxInput:/dev/input/event2"
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event2

它们至少有一定作用:

qt.qpa.input: Adding keyboard at "/dev/input/event2"
qt.qpa.input: Try to create keyboard handler for "/dev/input/event2" ""
qt.qpa.input: Opening keyboard at "/dev/input/event2"
qt.qpa.input: Create keyboard handler with for device "/dev/input/event2"
qt.qpa.input: Unload current keymap and restore built-in
qt.qpa.input: numlock=0 , capslock=0, scrolllock=0
qt.qpa.input: evdevmouse: Using device discovery

但是显然这还不够。我是否必须在/ dev / iput / event2设备上显式侦听,还是有简单的方法来重用Qt键事件? 可能是我在错误的对象上安装了事件过滤器吗?

谢谢!

0 个答案:

没有答案