操作
[root@ATK-DLRV1126:/]# cd etc
[root@ATK-DLRV1126:/etc]# vi profile
最后一行添加(可触摸)
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=rotate=90:invertx:rotate=90:inverty
root@ATK-DLRV1126:/etc]# cd init.d/
[root@ATK-DLRV1126:/etc/init.d]# vi S50QDesktop
文件如下
source /etc/profile
case "$1" in
start)
echo "Starting uidemo08..."
/demo/uidemo08 -platform linuxfb:rotation=90 2>&1 >/dev/null &
;;
stop)
echo "Stopping uidemo08..."
killall $(pidof uidemo08)
;;
reload|force-reload)
echo "Reloading uidemo08 configuration..."
"$0" reload
;;
restart)
"$0" stop
sleep 1 # Prevent race condition: ensure uidemo08 stops before start.
"$0" start
;;
*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
esac
exit 0
在上面加入代码-platform linuxfb:rotation=90
退出使用如下指令
source /etc/profile
即可横屏
说明:正点原子RV1126Qt默认使用Linuxfb插件。
在/etc/profile里添加以下内容 ,使Qt旋转 ,并且触摸也旋转
export QT_QPA_PLATFORM =linuxfb:rotation =90 export
QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS =rotate =90:invertx:rotate =90:inverty 然后在/etc/in it.d/S50QDesktop里将-platform linuxfb删掉 , 因为上面的profile里已经指 定了PLATFORM ,这里就不需要重新指定了。
触摸旋转
方法一:uidemo08
你可以ts_calibrate -r 1 , 1是旋转90度。2是180度 ,3是270度 ,点击5个点就可以校准, 校准生成的/etc/pointercal文件就是tslib的参考文件 ,重启后 ,tslib会以此作为坐标参
考。此时你的触摸就正常了 ,tslib校准一般是电阻屏才需要的 , 因为你旋转了qt显示 ,所以 触摸也要旋转!若要恢复触摸请删除/etc/pointercal文件 ,你也可以拷贝这
个/etc/pointercal到其他系统上 ,以后就不用校准了。 方法二:(推荐 ,会更准确)
修改触摸驱动:(以IMX6ULL为例 , rv1126的参考即可!请自行修改验证) 请注意 ,以gt9xx系列为例 ,现原子大部分的屏都是GT系列了。编辑
drivers/input/touchscreen/gt9xx.c
修改如下: 因为旋转了90度 ,x与y坐标发生了交换 ,并且y轴反向 ,所以要写成如下。