2017-07-31 30 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