当前位置:   article > 正文

嵌入式Linux ,QT5 鼠标键盘设备参数指定环境变量的方法

嵌入式Linux ,QT5 鼠标键盘设备参数指定环境变量的方法

根文件系统中,一般用mdev来管理设备,不像udev方便,有时候在执行rcS脚本的时候因为,太快,有些设备比如鼠标还没在/dev/input中生成设备文件,最好使用前用mdev -s扫描并等待几秒钟,然后就可以在input中看到event*的设备文件了,通过程序或者evtest工具可以看到每个event文件对应的是什么设备,这玩意研究了好几天,尤其鼠标设备,一开始以为是/dev/input/mice,实际并不能用这个设备文件给qt用,必须event开头的,但是evtest工具枚举并没有看到mouse字样的设备,只看到了keyboard,后来发现是mdev -s再执行一次等待几秒就能看到了,也许是设备初始化较晚的原因:

  1. echo "scan keyboard mouse device..."
  2. mdev -s
  3. sleep 2
  4. devices=$(ls /dev/input/ | grep 'event')
  5. kbdevice=""
  6. micedevice=""
  7. for device in $devices; do
  8. device_path="/dev/input/$device"
  9. output=$(timeout 0.5 evtest "$device_path" 2>/dev/null)
  10. if echo "$output" | grep -iq 'keyboard'; then
  11. echo "Found keyboard device: $device_path"
  12. kbdevice=$device
  13. elif echo "$output" | grep -iqE 'mouse|touchpad'; then
  14. echo "Found mouse device: $device_path"
  15. micedevice=$device
  16. fi
  17. if [ "$kbdevice" != "" ] && [ "$micedevice" != "" ]; then
  18. break
  19. fi
  20. done
  21. export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins
  22. export QT_QPA_GENERIC_PLUGINS=evdevmouse,evdevkeyboard
  23. if [ "$micedevice" != "" ];then
  24. export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/$micedevice
  25. fi
  26. if [ "$kbdevice" != "" ];then
  27. export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/$kbdevice
  28. fi

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/983794
推荐阅读
相关标签
  

闽ICP备14008679号