Почему Qt не может перехватить сенсорное событие после повторного подключения сенсорного USB-устройства?

Хорошего дня.

У меня проблема с горячей заменой сенсорного устройства.

Я установил переменную среды, как показано ниже. export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/ts_uinput:rotate=0

"/ Dev / input / ts_uinput" создается приложением библиотеки ts "ts_uinput".

Функция касания может работать нормально, прежде чем я снова подключу USB-устройство. Если я снова подключу сенсорное устройство USB, сенсорная функция не будет работать.

"/ Dev / input / ts_uinput" по-прежнему создается после повторного подключения сенсорного USB-устройства.

Я также отслеживаю данные в "/ dev / input / ts_uinput" и в них также есть отчет о данных.

Почему Qt не получает событие касания после повторного подключения сенсорного USB-устройства?

1 ответ

Я бы смело предположил, что это потому, что Qt (плагин платформы Qt evdev) открывается /dev/input/ts_uinput когда приложение запустится. При повторном подключении сенсорного устройства файл воссоздается, но дескриптор файла, хранящийся в Qt, становится недействительным. Для повторной работы потребуется, чтобы Qt закрыл и снова открыл дескриптор.

Вы можете попытаться получить больше информации, включив журналы отладки: http://doc.qt.io/qt-5/embedded-linux.html

Однако я не знаю, является ли это ошибкой или отсутствующей функцией, вы можете связаться со списком рассылки Qt интереса или сообщить об ошибке.

Другие вопросы по тегам