移植QT多点触摸

    注:本方法只在zynq平台,qt:5.3.2  编译器:gcc-linaro-arm-linux-gnueabihf-4.8下试验成功,其他平台未做测试,不同的qt和工具链版本之间会有一定的差异。

零,前提是触摸屏的硬件及驱动是支持多点触摸的(evtest程序测试),否则就不用看了

一,设置交叉编译工具链

~/.bashrc中添加工具链:
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=/home/brook/work/cross_compiler/gcc-linaro-arm-linux-gnueabihf-4.8/bin:$PATH

使工具链生效   $ source ~/.bashrc  ,或者重启电脑

 

二,移植mtdev,用于多点触摸的库

1,下载源码:

git clone http://bitmath.org/git/mtdev.git

2,配置编译

./autogen.sh             (失败的话;sudo apt-get install autoconf automake libtool)

./configure --prefix=/home/brook/work/ZYNQ/mtdev/mtdev/out_temp/ --host=arm-linux CC=arm-linux-gnueabihf-gcc

make install

将编译出的so库,拷贝到开发板的/lib, /usr/lib等能访问到的库路径下即可

 

三、编译qmake

1,在PC上安装多点触摸库,其实就是为了后面编译qmake,它去链接多点触摸库时,用PC上的骗过它,而不是用交叉编译的。还一种编译方式就是修改QT源码将所有判断mtdev的地方(搜索QT_NO_MTDEV)修改掉,就不用配置PKG_CONFIG_SYSROOT_DIR了。

sudo apt install libmtdev-dev    (安装的版本和交叉编译的版本差异不要太大)

2,配置和编译

修改qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf工具链后面添加hf(因为这里的工具链是带硬编码的)

export PKG_CONFIG_SYSROOT_DIR=/
export PKG_CONFIG_LIBDIR=/home/brook/work/ZYNQ/mtdev/mtdev/out_temp/lib/pkgconfig/
export PKG_CONFIG_LIB=/home/brook/work/ZYNQ/mtdev/mtdev/out_temp/lib/pkgconfig/

./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.3.2/  -no-c++11 -no-opengl -mtdev -I /home/brook/work/ZYNQ/mtdev/mtdev/out_temp/include -L /home/brook/work/ZYNQ/mtdev/mtdev/out_temp/lib -lmtdev

make

make install

3,将相关qt库安装到系统中,其他的库就不说了,关键将Qt-5.3.2/plugins/generic/libqevdevtouchplugin.so拷贝到对应的plugins/generic/目录下

4,启动QT程序时环境配置

export LD_LIBRARY_PATH=/usr/qt/lib:$LD_LIBRARY_PATH    #配置qt库路径
export QT_QPA_FONTDIR=/app/fonts                                              #配置字体路径
export DISPLAY=:0                                                                              

export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt/plugins    #插件路径
export QT_IM_MODULE=mockup

export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt/plugins     #下面是支持多点触摸的
export QT_QPA_GENERIC_PLUGINS=EvdevTouch
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1

四,测试

编译qmake生成的测试程序是多点触摸测试的:

Qt-5.3.2/examples/touch/pinchzoom/pinchzoom    //放大缩小

Qt-5.3.2/examples/touch/fingerpaint/fingerpaint     //多个手指同时划线

 

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值