Eventfilter在imx6的嵌入式Linux上的Qt5.9.2 QML应用程序中没有收到任何TouchEnd事件

时间:2018-01-19 08:59:34

标签: qml touch qt5 imx6

有一个带有linux3.0.35和Qt4.8.5的imx6主板 我通过交叉编译Qt5.9.2源代码更新了Qt4.8.5到Qt5.9.2 QML应用程序可以构建正常并使用Qt5.9.2显示OK 但触摸无效,虽然触摸显示效果很好。

登录eventfilter()如下:

QEvent::Type(ChildAdded)
QEvent::Type(TouchBegin)
QEvent::Type(TouchBegin)
QEvent::Type(TouchBegin)
QEvent::Type(TouchBegin)
QEvent::Type(Timer)
QEvent::Type(UpdateRequest)
QEvent::Type(TouchUpdate)
QEvent::Type(ChildAdded)
QEvent::Type(TouchUpdate)
QEvent::Type(ChildAdded)
QEvent::Type(TouchUpdate)
QEvent::Type(ChildAdded)
QEvent::Type(TouchUpdate)

为什么日志中有四个TouchBegin,只需轻轻一按? 为什么日志中没有任何TouchEnd?

PS:
我的交叉编译配置如下:

  

./ configure -release -xplatform linux-arm-gnueabi-g ++ -no-opengl -opengl es2 -prefix~ / qt5.9.2-arm -opensource -confirm-license -make libs -nomake tools -nomake tests -skip qtandroidextras -skip qtconnectivity -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtsechasing -skip qtsensors -skip qtserialbus -skip qtspeech -skip qtsvg -skip qttools -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview - 跳过qtwinextras -no-feature-iconv -no-feature-gestures -no-qml-debug

1 个答案:

答案 0 :(得分:1)

将QT_QPA_GENERIC_PLUGINS设为tslib和evdevkeyboard,但不是evdev。
问题已得到解决。

export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/ts0,evdevkeyboard:/dev/input/event6