У меня работает с:
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
export QT_QPA_EVDEV_MOUSE_PARAMETERS=grab=1
и работает с:
sudo -E ./myapp -platform eglfs
Я думаю, sudo
необходим из-за того, что в документации говорится о /dev/input/event*
разрешениях. Также необходима опция -E
, чтобы sudo сохранял экспортированные переменные.
Надеюсь, это поможет.
Qt для встроенного Linux
Ввод
Когда нет оконной системы, мышь, клавиатура и сенсорный ввод читаются напрямую через evdev или с помощью вспомогательных библиотек, таких как libinput или tslib. Обратите внимание, что для этого необходимо, чтобы узлы устройства / dev / input / event * были доступны для чтения пользователю. eglfs и linuxfb имеют весь скомпилированный код обработки ввода.
Я хочу поделиться дополнительной информацией о моем предыдущем ответе:
Это список экспорта, с помощью которого я предотвращаю передачу событий мыши и клавиатуры на терминал и систему X11 из моего приложения:
export QT_QPA_EGLFS_PHYSICAL_WIDTH=155
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=86
export QT_QPA_EGLFS_WIDTH=1024
export QT_QPA_EGLFS_HEIGHT=614
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
export QT_QPA_EVDEV_MOUSE_PARAMETERS=grab=1
export QT_QPA_EGLFS_NO_LIBINPUT=1
Обратите внимание, что export QT_QPA_EGLFS_NO_LIBINPUT=1
необходим, поэтому в игру вступают собственные обработчики evdev
Qt и, следовательно, учитываются опции QT_QPA_EVDEV*
. Это то, что я мог проверить.
Qt для встраиваемых Linux
Использование libinput
... Если поддержка libinput недоступна или установлена переменная окружения QT_QPA_EGLFS_NO_LIBINPUT
, в игру вступают собственные обработчики evdev Qt.
Кроме того, в качестве комментария я попробовал эту конфигурацию, сначала с мышью и клавиатурой, управляемой с помощью того же USB (Logitech), и вот так: клавиатура работала правильно, но не мышь. Поэтому я решил попробовать с независимой мышью и клавиатурой, и теперь обе (мышь и клавиатура) работают правильно.
Кроме того, мне не нужно запускать приложение с SUDO
или SUDO -E
, поскольку каталог /dev/input/event*
имеет разрешения на чтение / запись для группы 'input'
, и мой пользователь является частью этой группы.
Привет!