主题 : 关于运行QtE程序时的触摸屏问题【已解决】 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 21881
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2010-05-23
最后登录: 2010-11-19
楼主  发表于: 2010-09-06 18:35

 关于运行QtE程序时的触摸屏问题【已解决】

我想彻底摆脱qtopia环境,于是修改了rCS文件,不让opia环境自启动。
系统启动后直接在命令行里启动自己的QtE4.6.3程序,比如: ./hello -qws

程序能启动,但是此时触摸屏不可用。

启动文件系统自带的qt4.6.3后触摸屏是能用,但那需要将程序整合进去和其他demo程序一起。

请问应该做什么才能让触摸屏可用,需要自己载入触摸屏驱动吗?
[ 此帖被kasim在2010-09-07 14:44重新编辑 ]
级别: 新手上路
UID: 21881
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2010-05-23
最后登录: 2010-11-19
1楼  发表于: 2010-09-06 22:04
应该是环境变量的问题  我vi /bin/qt4 看了一下它设置了一堆环境变量:

#!/bin/sh

export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/usr/local/lib
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin

export QWS_DISPLAY=:1

TS_INFO_FILE=/sys/devices/virtual/input/input0/uevent
if [ -e $TS_INFO_FILE -a "/bin/grep -q TouchScreen < $TS_INFO_FILE" ]; then
        export QWS_MOUSE_PROTO="Tslib:/dev/input/event0 MouseMan:/dev/input/mice
        if [ ! -s /etc/pointercal ] ; then
                rm /etc/pointercal
                /usr/local/bin/ts_calibrate
        fi
else
        export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
unset TS_INFO_FILE
export QWS_KEYBOARD=TTY:/dev/tty1

export HOME=/root

cd $1                       #我把这两句改成外部输入参数的形式,这样就可以通过命令行输入参数来启动自己要的程序了
./$2 -qws                #
hotplug

用上面我改后的脚本启动程序没有问题,但另一个我无法想通的问题出现了:
我把最后三行注释掉:
#cd $1
#./$2 -qws
#hotplug
然后执行脚本后自己在命令行里启动程序 ./hi -qws  程序启动后触摸屏还是无法使用,费解
我只是把一个动作分解成两个动作了而已,求高手解惑....

级别: 新手上路
UID: 21881
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2010-05-23
最后登录: 2010-11-19
2楼  发表于: 2010-09-07 14:37
环境变量的生命周期问题,答案在置顶的帖子里...

http://www.aiothome.net/read.php?tid-4106.html
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-09-07 14:44

 回 2楼(toto07) 的帖子

能自己通过搜索以前的帖子找到答案,恭喜:)
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 7480
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2009-07-16
最后登录: 2012-09-08
4楼  发表于: 2012-08-12 14:45
QTE在linux下使用qvfb方式显示APP。这样的方式使用USB或串口触摸屏要在触摸屏驱动、linux系统环境变量设置、tslib校准等方面做修改,tslib官网的驱动不能直接校准。这个开发过程需要对整个架构都非常熟悉才能调出来,而且触摸屏驱动要触摸屏控制器厂家支持才行,而且支持这种非X11方式的驱动厂家很少。touchqvfb@163.com 有一家的触摸屏控制器支持,提供完整linux驱动和校准方案,直接安装即可,无需自己开发;支持fedora、ubuntu、debian等常用系统。在工控领域qte图形界面比X-windows下显示图形界面APP要稳定的多,因为多次非法关机后会使linux系统文件损坏导致x11启动不起来,gnome或KDE桌面非常脆弱的,它太庞大了,若是一些环境变量文件损坏了界面就崩溃,而使用QVFB framebuffer方式显示不依赖于系统配置,所以在高可靠领域图形界面APP一般都是使用这种方式显示。