嵌入式linux input

输入
如果没有窗口系统,则可以通过evdev直接或使用诸如libinput、tslib库 的帮助来读取鼠标,键盘,触摸输入。注意,这要求/dev/input/event*用户可以读取设备节点。eglfslinuxfb已编译包含所有输入处理代码。

使用libinput
libinput是一个用于处理输入设备的库。它提供了Qt自己的evdev输入支持的替代方法。要启用libinput,请确保在配置和构建Qt时用于的开发文件libudevlibinput可用。xkbcommon如果需要键盘支持,则也有必要。随着eglfslinuxfb这些插件使用没有进一步的行动是必需的libinput默认。如果libinput无法获得支持或QT_QPA_EGLFS_NO_LIBINPUT设置了环境变量,则可以使用Qt自己的evdev处理程序。

在没有libinput的eglfs和linuxfb上输入
像设备节点名称参数可以在环境变量设置QT_QPA_EVDEV_MOUSE_PARAMETERSQT_QPA_EVDEV_KEYBOARD_PARAMETERSQT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS。用冒号分隔条目。这些参数可以替代在-plugin命令行参数中传递设置的方法,并且在某些后端它们是必不可少的:eglfs和linuxfb使用内置的输入处理程序,因此没有单独的-plugin参数在使用。
此外,可以通过设置QT_QPA_EGLFS_DISABLE_INPUTQT_QPA_FB_DISABLE_INPUT来禁用内置输入处理程序1

触摸
对于某些电阻式单点触摸屏,可能有必要退回到使用tslib方式,而不是依赖Linux多点触摸协议和事件设备。对于现代触摸屏,这不是必需的。tslib载体可以通过设置环境变量来启用QT_QPA_EGLFS_TSLIBQT_QPA_FB_TSLIB为1。要改变的装置中,设置环境变量TSLIB_TSDEVICE或传递命令行的设备名称。请注意,tslib输入处理程序会生成鼠标事件并仅支持单点触摸,与此相反,输入处理程序也会evdevtouch生成真正的多点触摸QTouchEvent事件。

了evdev触摸处理器支持以下额外的参数:

  • /dev/input/...-指定输入设备的名称。如果没有给出,Qt会通过libudev或遍历可用节点来寻找合适的设备。
  • rotate-在某些触摸屏上,必须旋转坐标,方法是将其设置rotate为90、180或270。
  • invertxinverty-要在输入事件中反转X或Y坐标,请传递invertxinverty

例如,export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event5:rotate=180在启动应用程序之前进行操作会导致显式指定的触摸设备并翻转坐标-在实际屏幕和触摸屏的方向不匹配时很有用。

 

参考:
https://doc.qt.io/qt-5/embedded-linux.html
https://wayland.freedesktop.org/libinput/doc/latest/what-is-libinput.html#what-libinput-is

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值