2017-07-31 32 views
0

祝您有美好的一天。爲什麼在重新插入USB觸摸設備後Qt無法捕獲觸摸事件?

我有關於觸摸設備熱插拔的問題。

我如下設置環境變量。 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觸摸設備後沒有得到觸摸事件?

回答

0

我會大膽猜測這是因爲Qt(Qt evdev平臺插件)在應用程序啓動時打開/dev/input/ts_uinput。當你重新插入觸摸設備時,文件被重新創建,但Qt保存的文件句柄已失效。重新開始工作將需要Qt關閉並重新打開句柄。

您可以嘗試通過啓用調試日誌獲得更多信息:http://doc.qt.io/qt-5/embedded-linux.html#debugging-input-devices

不過,我不知道這是否是一個錯誤或缺失的功能,您可能需要聯繫了Qt interest mailing listreport a bug