LattePanda搭载Xubuntu(XFCE4)环境下Qt应用触摸屏手势异常问题求助
LattePanda搭载Xubuntu(XFCE4)环境下Qt应用触摸屏手势异常问题求助
嘿,我之前在类似的轻量SBC+XFCE环境里折腾过触摸屏的问题,给你分享几个亲测有效的方案,刚好适配LattePanda的资源限制:
一、Xubuntu/XFCE4系统层面的配置调整
1. 禁用触摸时的光标显示
XFCE默认会把触摸事件映射成鼠标事件,所以会显示光标,推荐用轻量工具unclutter来隐藏,完全不占额外资源:
- 先安装工具:
sudo apt install unclutter - 配置自启动:打开XFCE的「会话和启动」→「应用程序自动启动」,添加新启动项,命令填
unclutter -idle 0.1 -root,意思是光标闲置0.1秒就自动隐藏,-root表示全局生效 - 要是想彻底隐藏(连闲置等待都不需要),可以修改Xorg配置:创建
/usr/share/X11/xorg.conf.d/99-hide-cursor.conf,写入以下内容:
Section "InputClass" Identifier "touchscreen" MatchIsTouchscreen "on" Option "CursorShape" "none" EndSection
重启系统后光标就完全消失了。
2. 启用系统级触摸手势
XFCE原生手势支持有限,装个官方插件就能快速搞定:
- 安装插件:
sudo apt install xfce4-gestures-plugin - 配置手势:打开XFCE的「设置」→「手势」,在这里可以添加双指滑动、三指缩放等常用手势,记得先在「设备」标签里确认你的触摸屏被选中
- 先验证触摸设备是否正常:用
xinput list查看系统识别的触摸设备ID,再用xinput test <设备ID>测试触摸事件,如果能看到坐标输出,说明硬件识别没问题
二、Qt应用内部的手势优化
Qt本身对触摸手势有很好的原生支持,只要调整几个设置就能适配纯触摸场景:
1. 禁用鼠标事件,强制触摸模式
在Qt Widgets应用的main函数里添加以下代码,把应用切换到纯触摸模式:
#include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 适配LattePanda的高DPI屏幕 app.setAttribute(Qt::AA_EnableHighDpiScaling); app.setAttribute(Qt::AA_UseHighDpiPixmaps); // 主动抓取捏合、滑动等触摸手势 app.gestureManager()->setGrabGesture(Qt::PinchGesture); app.gestureManager()->setGrabGesture(Qt::SwipeGesture); // 你的应用初始化代码... return app.exec(); }
如果是Qt Quick/QML应用,在主窗口里忽略鼠标事件,只处理触摸逻辑:
import QtQuick 2.15 import QtQuick.Controls 2.15 ApplicationWindow { visibility: Window.FullScreen // 强制全屏运行 MouseArea { anchors.fill: parent acceptedButtons: Qt.NoButton // 完全忽略鼠标事件 // 处理捏合手势示例 onPinchStarted: { // 你的捏合缩放逻辑 } // 处理滑动手势示例 onSwipeStarted: { // 你的页面切换逻辑 } } }
2. 编译与依赖检查
确保你的Qt环境安装了触摸相关依赖:sudo apt install libqt5gui5 libqt5multimedia5 libqt5quickcontrols2-5,如果是自己编译Qt,记得开启QT_TOUCH_SUPPORT配置选项。另外,启动应用时可以加环境变量QT_QPA_EGLFS_NO_CURSOR=1,强制隐藏应用内的光标。
三、LattePanda专属适配经验
我之前用LattePanda Delta做过类似项目,踩过两个小坑,给你提个醒:
- 驱动问题:有些LattePanda的触摸屏默认用的是旧HID驱动,可能导致手势识别异常,建议更新到Ubuntu 20.04的最新内核(
sudo apt install linux-generic-hwe-20.04),更新后重启就能识别到完整的触摸事件 - 触摸校准:如果触摸坐标和显示画面偏移,用
xinput_calibrator工具校准:安装sudo apt install xinput-calibrator,运行后按照提示点击校准点,生成的配置会自动保存到Xorg里
备注:内容来源于stack exchange,提问作者Samrat
相关产品推荐
相关产品推荐

