QTE触摸屏不起作用的问题解决方案

各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

就是一个用qt写的界面,想在板子启动的时候跟着一起启动。最后在rc.local中添加启动脚本,在exec /……/qpe -qws 后面添加了sleep 30和exec /……/test, 终于可以在qpe启动之后运行我自己的界面了,能够正常操作。
但是我并不需要qpe桌面,于是我就把exec /……/qpe -qws 换成了exec /……/test -qws,也就是说我不启动qpe。好了,全屏了,但是触摸屏根本就没反应!!!! 终端提示Cannot open /dev/h3600_ts (No such file or directory),但是这个时候我cat /dev/touchscreen/0,之后点击触摸屏,仍然有数据传给终端,只不过我的界面似乎对点击无动于衷。。。。然后我把后面的-qws去掉,就 连界面也显示不出来了。
现在我有一个问题很不明白:qpe启动之后是不是会开启一些特别的服务??是不是必须要启动qpe然后才能使用触摸屏??然后界面基于此才能使用??
查资料都查烦了,也没什么结果,期待大侠指点迷津!!

tpu
(old hand)
08-08-03 03:16
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

那个,你检查一下,是否正确设置了QT需要的环境变量。

hahagaga
(stranger)
08-08-04 13:08
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

我试试先。。。

DaviesCai
(journeyman)
08-08-04 13:24
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

把exec /……/test -qws放在最后执行,最好放在profle最后面执行

hahagaga
(stranger)
08-08-04 13:33
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

这个已经试过了:我把exec /……/qpe -qws 换成了exec /……/test -qws,那么test其实实在profile执行后运行的,结果就是界面能够显示出来,但是对触摸屏点击没有反应。或许真的是环境设置的问题。。。。

DaviesCai
(journeyman)
08-08-04 13:42
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

在执行之前加
ln -s /dev/touchscreen/0 /dev/h3600_ts
export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts

hahagaga
(stranger)
08-08-04 14:54
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

似乎还是不行,界面对触摸屏依然没有反应。。。
还是提示Cannot open /dev/h3600_ts (No such file or directory)
我把相关的脚本贴出来,请大侠帮我分析一下!我的水平目前还看不出问题出在哪里。。。。。


rc.local:


#!/bin/bash
. /usr/etc/profile ###文件内容附后

/sbin/ifconfig lo 127.0.0.1 up
/sbin/ifconfig eth0 192.168.2.223 netmask 255.255.255.0 up
/bin/route add default gw 192.168.2.1 eth0
/sbin/inetd
/usr/sbin/makelinks
source /.bashrc ###文件内容附后

/bin/cp -rf /Qtopia/qtopia-free-1.7.0/wjluv/* /tmp/
/bin/boa -c /home/httpd
/bin/mkdir /tmp/udisk
/bin/mkdir /tmp/images
/bin/mkdir /tmp/flashdisk
/bin/mkdir /tmp/sdcard
/bin/mkdir /tmp/mplayer
/bin/mount -t vfat /dev/nfblock/3 /tmp/flashdisk/
/bin/mount -t vfat /dev/nfblock/2 /tmp/mplayer/
if test -e "/tmp/flashdisk/userconfig"; then
/bin/chmod u+x /tmp/flashdisk/userconfig
. /tmp/flashdisk/userconfig
fi
###下面是我自己加的
ln -s /dev/touchscreen/0 /dev/h3600_ts
sleep 10s
export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts
exec /Qtopia/qtopia-free-1.7.0/bin/test -qws



rc.local中提到的/usr/etc/profile:


#!/bin/bash
DISPLAY=unix:0.0
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
LD_LIBRARY_PATH=/lib:/usr/lib:/Qtopia/qt-2.3.2/lib
#QWS_KEYBOARD=TTY
LANG=C
HOME=/tmp
KMOD=/lib/modules/2.4.19-rmk4-pxa2
export PATH LD_LIBRARY_PATH QTDIR LINUETTEDIR QWS_KEYBOARD LANG HOME DISPLAY KDEDIR KMOD



rc.local中提到的/.bashrc:


# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc ###文件内容附后
fi

export DISPLAY=:0.0
export HOME=/tmp
ln -s /dev/touchscreen/0raw /dev/touchscreen/0
export IMGDIR="/Qtopia/demo"
export QPEDIR="/Qtopia/qtopia-free-1.7.0"
export QTDIR="/Qtopia/qt-2.3.7"
export QTEDIR="/Qtopia/qt-2.3.7"
export KDEDIR="/Qtopia/konqueror"
export PATH=$QPEDIR/bin:$IMGDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$IMGDIR/lib:$QPEDIR/lib



/.bashrc中提到的/etc/bashrc:


# /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile

# by default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then
umask 002
else
umask 022
fi

# are we an interactive shell?
if [ "$PS1" ]; then
if [ -x /usr/bin/tput ]; then
if [ "x`tput kbs`" != "x" ]; then # We can't do this with "dumb" terminal
stty erase `tput kbs`
elif [ -x /usr/bin/wc ]; then
if [ "`tput kbs|wc -c `" -gt 0 ]; then # We can't do this with "dumb" terminal
stty erase `tput kbs`
fi
fi
fi
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='echo -ne "/033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}/007"'
fi
;;
screen)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='echo -ne "/033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}/033//"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
;;
esac
# Turn on checkwinsize
shopt -s checkwinsize
[ "$PS1" = "//s-//v///$ " ] && PS1="[/u@/h /W]//$ "

if [ "x$SHLVL" != "x1" ]; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
. $i
fi
done
fi
fi
# vim:ts=4:sw=4

DaviesCai
(journeyman)
08-08-04 16:29
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

ln -s /dev/touchscreen/0raw /dev/h3600_ts
sleep 10s
export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts
exec /Qtopia/qtopia-free-1.7.0/bin/test -qws


注意/usr/etc/profile 与 /etc/profile是不同的

hahagaga
(stranger)
08-08-04 17:35
Re: 各位大侠,程序自启动问题,试了很多方法,都可耻地失败老。。。。

多谢DaviesCai不断的指导!!解决了!

原来是/.bashrc中的ln -s /dev/touchscreen/0raw /dev/touchscreen/0这一句错了!!!!!
应该是ln -s /dev/touchscreen/0 /dev/touchscreen/0raw
改正过来后,再在rc.local中添加
ln -s /dev/touchscreen/0 /dev/h3600_ts
sleep 10s
export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts
exec /Qtopia/qtopia-free-1.7.0/bin/test -qws
就可以了。

另外,我的开发板/etc目录下没有profile文件,确实使用的是/usr/etc下的profile
看它给的inittab就能够看出来:

inittab的内容:

# This is run first except when booting
::sysinit:/etc/init.d/rcS

# Start an "askfirst" shell on the console
#::askfirst:-/bin/bash
::askfirst:/bin/bash

# Stuff to do when restarting the init process
::restart:/sbin/init

#::once:/sbin/raja.sh
#::respawn:/sbin/iom

::once:/usr/etc/rc.local

# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

我还有一些疑问:
我起初export QWS_MOUSE_PROTO=TPanel:/dev/touchscreen/0 为什么就不行???
另外,很多人写export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts 这一句的时候,
会加一对引号,比如:
export QWS_MOUSE_PROTO=“TPanel:/dev/h3600_ts”,
请问这个引号有什么作用呢??还有的人这样写:
export set QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts,
加了set又是什么作用呢??
还有就是:
export QWS_MOUSE_PROTO=USB:/dev/h3600_ts
这个和export QWS_MOUSE_PROTO=TPanel:/dev/h3600_ts 有什么不同呢??
问的问题比较多,有点得寸进尺,希望DaviesCai不要介意哈^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
### 回答1: Target QTE是一款非常受欢迎的手机游戏。该游戏的下载方法非常简单。首先,用户需要打开手机的应用商店,如App Store或者Google Play。然后,在搜索栏中输入"Target QTE",点击搜索按钮。在搜索结果中,用户会看到Target QTE游戏的图标和相关信息。接下来,点击游戏图标,进入游戏的详细页面。在详细页面上,用户可以看到游戏的介绍、评分、评论等信息。而要下载游戏,只需点击页面上的"下载"按钮。然后,根据手机的设置,可能需要进行一些操作,如选择下载方式、输入密码等。等待下载完成后,用户可以在手机的应用屏幕上找到Target QTE游戏的图标,并点击打开游戏。现在,用户就可以开始畅玩这款精彩的Target QTE游戏了!无论是在闲暇时光还是旅途中,用户都可以享受到这款游戏带来的乐趣和挑战。 ### 回答2: Target QTE是一款非常受欢迎的手机游戏,下载方法非常简单。首先,您可以打开您的手机应用市场,例如苹果应用商店或安卓应用商店。然后,在应用商店的搜索栏中输入“Target QTE”来搜索这款游戏。一旦找到了游戏,点击“下载”按钮等待游戏下载完成即可。 由于Target QTE是一款免费游戏,所以您可以直接下载并开始游戏。但是,游戏可能包含一些内购项目,您可以根据自己的需求选择是否购买。 安装完毕后,您可以点击游戏图标来开始玩Target QTE。这款游戏是一种反应能力和手眼协调的游戏,玩家需要在游戏中点击屏幕上的不同目标来获得分数。游戏的难度会随着关卡的增加逐渐增加,需要玩家不断提高自己的游戏技巧和反应速度。 通过下载Target QTE,您可以在手机上随时随地享受到这款有趣的游戏。这款游戏不仅挑战您的反应能力,还可以帮助您放松压力和打发时间。快来下载Target QTE,感受游戏的乐趣吧!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值