QT触摸屏的实现

QT触摸屏的实现 (2007-11-27 18:10:19)
 

用了一天的时间,阅读了大量的资源,总算把QT2.*的触摸屏给弄好了,哈.成就来的太容易,总觉得哪里有问题,不塌实...发出来让大家看看吧,欢迎交流,希望能给同样想解决这个问题的朋友们一些少许的帮助.

弄这个我主要参考了网上的尘封の觉醒的方法    

 

#######需要的相关软件包:
qt-embedded-2.3.10-free.tar.gz
qt-x11-2.3.2.tar.gz
tmake-1.13.tar.gz
tslib.tar.gz
#######解压上面的相关包以后,有以下几个目录:
qt-2.3.10
qt-2.3.2
tmake-1.13
tslib
tslib-install
这些解压以后的目录都放在同一个目录下,例如,我把他们都放在了/root/myTslib/下
#######设置相关的环境变量
这些环境变量都是在/root/myTslib/ 下设置的,因为我把上面解压以后的文件夹放在了此目录下.
export QTEDIR=$PWD/qt-2.3.10
export QT2DIR=$PWD/qt-2.3.2
export TMAKEDIR=$PWD/tmake-1.13
export TSLIBDIR=$PWD/tslib
export TSLIBINST=$PWD/tslib-install
export LD_LIBRARY_PATH=$TSLIBINST/lib
export CC=arm-linux-gcc
cd tslib
./autogen.sh --host=arm-linux --prefix=$TSLIBINST

 

make -j4
make install
########注意::在编译qte-2.3.10和qte-2.3.2时,$TMAKEDIR/lib/qws/linux-arm-g++/tmake.conf文件中
             “TMAKE_LINK= arm-linux-gcc”
             “TMAKE_LINK_SHLIB= arm-linux-gcc”
              一定是上面的那样,用gcc
#####cp tslib to qte lib dir
cp -a $TSLIBDIR/src/.libs/*   $QTEDIR/lib/
cp -a $TSLIBDIR/plugins/.libs/*.so  $QTEDIR/lib/
cp -a $TSLIBINST/bin/*     $QTEDIR/bin
cp -a $TSLIBINST/etc/ts.conf  $QTEDIR/.
cp -a  $TSLIBINST/include/ts*  $QTEDIR/include/.
####Build Qt/X11 2.3.2
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
make clean
./configure -no-opengl -no-xft

 

make
cp -f bin/uic $QTEDIR/bin/       //没有这一步也性

#####Build Qt/Embedded
编译之前要修改一些东西
1.在 qt-2.3.10/src/kernel/ 下,修改qwsmouse_qws.cpp程序,此文件中有3处/etc/pointercal,把这3处的etc修改成tmp
 ,因为开发板是在/tmp/下找到校正信息温暖文件的,"pointercal"这个名子随便改,只要在接下来的环境变量设置时,
写成相应的就行(看接下来的几步)
2.修改 /qt-2.3.10/configs/linux-arm-g++-shared文件:
  #Linking application下的SYSCONF_LIBS = -lm  修改为 SYSCONF_LIBS=-lm -lts
  #Linking shared libraries 下的 SYSCONF_LINK_SHLIB=arm-linux-gcc修改为
   SYSCONF_LINK_SHLIB=arm-linux-gcc -lts
修改完后,开始编译 qte-2.3.10
cd $QTEDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QT2DIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
   cp -f ../qconfig-large.h   src/tools/qconfig-my.h
   上面的cp命令中的 qconfig-large.h是老师给的一个头文件
/configure -xplatfrom linux-arm-g++ -qconfig my -no-qvfb -depths 16 -tslib -thread -I$TSLIBINST/include -L$TSLIBINST/lib    

此时参照我的另外一个问题解决贴进行Q2的解决:

 
make sub-src
这样编译工作就完成了,生成的支持触摸屏的库在qte-2.3.10/lib下,把这些库考到开发板的/usr/lib/下即可
########以下为arm2410-S开发板上的工作
设置环境变量
export QTDIR=/usr/
export QTEDIR=/usr/
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/tmp/ts.conf
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CALIBFILE=/tmp/pointercal    //这一个和上面的编译qte时修改etc的相对应
export TSLIB_PLUGINDIR=/usr/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
export QWS_SIZE=640x480
export QWS_MOUSE_PROTO="TPanel:/dev/input/event0 USB"
export LANG=zh_CN
insmod /mnt/yaffs/touchscreen/ts-uptech.o
在主机的tslib-install/etc有ts.conf,把他考到开发板的/tmp下.
再把tslib-install/bin下的三个可执行程序ts_calibrate,ts_print,ts_test考到开发板上,其中ts_calibrate为触摸屏的
校正程序.
在开发板上运行ts_calibrate进行校验,此时会在开发板的/tmp/下生成上面提到的pointercal程序文件,此程序是为
以后应用程序服务的,要用他来进行校正.
##########编译应用程序测试
在主机上编译一个应用程序,在qte-2.3.10/exmples/下有应用序.
注意: 编译应用程序时,要修改tmake-1.13/lib/qws/linux-arm-g++/tmake.conf文件
        将其中的: “TMAKE_LINK= arm-linux-gcc”
                  “TMAKE_LINK_SHLIB= arm-linux-gcc”
        修改为  : “TMAKE_LINK= arm-linux-g++”
                 “TMAKE_LINK_SHLIB= arm-linux-g++”
编译应用程序需要的环境变量:
             TMAKEDIR,TMAKEPATH,QTEDIR,QTDIR
    其中QTDIR指向QTEDIR
注释: 编写自己的Makefile时候可能要手动修改编译参数 加上 -lts

      设备驱动有可能不是event0 需要具体设置

      qconfig-my.h 配置文件可以随意

      找不到库的话就手动到编译器的库路径中添加

                                                               ---sprife

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值