本篇内容介绍了“QtE必备知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.开机启动脚本 开机启动脚本文件是“/etc/init.d/rcS”,大部分操作系统都有类似的文件。该文件中的代码属于脚本语言,比较容易理解。 下面截取有代表性的分析一下。注意,下面的代码行数可能和用户的不能直接对应,这里并不影响用户学习,这里主要是了解整个启动流程,以及在启动过程中,都做了哪些事情。 01 #! /bin/sh 02 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin: 03 runlevel=S 04 prevlevel=N 05 umask 022 06 export PATH runlevel prevlevel 代码分析 01 #! /bin/sh 是指此脚本使用/bin/sh 来解释执行,#!是特殊的表示符,后面是解释此脚本的 shell 的路径。 02 PATH=XX 是设置默认的有效执行路径,代表 root 根目录下的路径。 03 这里是设置用户等级,这里默认为单用户。(用户记不记得,Linux 是多用户的) 04 表示用户创建的新文件权限为 755 05 设置环境变量(和搭建编译环境时修改 Ubuntu 的环境变量类似) 12 /bin/hostname iTOP-4412 14 #/bin/mount -n -t proc none /proc 23 /sbin/mdev -s 24 /bin/hotplug 39 ln -sf /dev/ttyS2 /dev/tty2 43 amixer cset numid=5 127 50 /sbin/hwclock -s -f /dev/rtc 52 syslogd 12 设置主机名称为 iTOP-4412,在这里用户可以修改为自己的名称。 14 使用 mount 命令设置常用临时目录 23 mdev 命令自动产生驱动所需的节点文件 24 hotplug 挂载 USB 设备 39 ln 命令建立链接 43 amixer 设置音频的参数 50 hwclock 设置时钟 52 syslogd 记录系统运行的各种讯息 53 /etc/rc.d/init.d/netd start …… 81 /sbin/ifconfig lo 127.0.0.1 …… 87 echo "Starting Qtopia4, please waiting..." 启动各种服务程序 ifconfig 配置网络 echo 命令向输出终端打印信息 89 #/bin/qtopia & “#”就是注释掉这一行,“&”表示在后台运行 91 /bin/helloworld -qws & 表示运行“helloworld”的时候,QWS 功能启动,“QWS”是 QT 的窗口系统,也就是需要加上“-qws”,屏幕才能显示。 注意,脚本命令比较容易理解,通过本节的分析,相信用户已经具备了一定的阅读脚本代码的能力,在手册后面部分,脚本命令就不给大家做详细的分析了。大家只需要在遇到脚本命令的时候去学习即可,这里只是学习和理解脚本文件的一个引子。 2. qt4 文件的移植和修改(鼠标触摸以及字体) 在 7.4 小节介绍配置文件的时候,提到迅为制作的触摸库文件“/usr/local/tslib”,迅为已经将触摸功能编译到 Qt/E4.7.1 的库文件中,开发板可以支持触摸和鼠标功能。 用户在前面运行 helloworld 的时候,会发现触摸和鼠标似乎无法使用,但是在 qt4 中却能使用触摸和鼠标。 这一小节就介绍如何将 qt4 的触摸功能移植到应用程序 helloworld 中。 如下图,打开“etc/init.d/rcS”文件,将最后一行修改为“/bin/qt4_shell &”,这样在开机之后系统会运行 qt4.shell 程序。修改完成之后,保存退出。 然后使用命令“#cp -r bin/qt4 bin/qt4.shell”将“bin/qt4”文件拷贝生成“bin/qt4.shell”文件,如下图所示。
然后打开“bin/qt4.shell”文件,如下图所示。 代码“export TSLIB_ROOT=/usr/local/tslib”等调用了触摸和鼠标驱动。 代码“export QTDIR=/opt/qt-4.7.1/”调用了 QtE 的库。 如下图所示,这一段关于鼠标的驱动已经被注释掉了。 将上图中与触摸鼠标相关代码修改为下面的代码。 if [! -c /dev/input/event2 ]; then export QWS_MOUSE_PROTO='Tslib:/dev/input/event2' #if [ -e /etc/pointercal -a ! -s /etc/pointercal ] ; then if [ -e /etc/pointercal ] ; then fsize=$(/bin/ls -al /etc/pointercal | cut -d' ' -f 23) echo $fsize #if [ -s /etc/pointercal ]; then if [ $fsize -ge "1" ]; then echo "/etc/pointercal is exit" else echo "/etc/pointercal is empty" rm /etc/pointercal /usr/local/tslib/bin/ts_calibrate fi else echo "/etc/pointercal not found" /usr/local/tslib/bin/ts_calibrate fi else export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice" #>/etc/pointercal fi #export QWS_MOUSE_PROTO="Tslib{TSLIB_TSDEVICE}" #/usr/local/tslib/bin/ts_calibrate 上面代码第一行,有“!”则支持鼠标;触摸应该不能正常使用。 如果去掉“!”则支持触摸。需要先校准,使用上面这段代码只用校准一次即可,不用每次都校验。 另外如果用户在第一次校准的时候,没有依次点击“十字框”,则触摸文件可能有问题,那么可以参考 7.3.3 小节,删除掉“/etc/point*”文件,重启开发板再次校准。 修改这段代码之后,最好删除一下“/etc/point*”文件。例如,如果用户刚开始使用的是触摸,然后改成鼠标控制,因为已经存在“/etc/point*”文件,所以会让人感觉鼠标可以使用,触摸能够使用但是有问题,这个时候删除“/etc/point*”文件重启即可。 如下图所示,接着找到控制字体的参数。
如上图,将下面三行删除,避免字体太大导致显示不正常。 *) export QWS_DISPLAY="LinuxFb:mmWidth91:mmHeight53:1" ;; 如下图所示,进入最后一行,红色框默认会启动 QtE 自带的例程,这里修改为 “./bin/helloworld -qws”,红色框中的代码记得注释或者删除。 3.qt 挂载盘符 linux QT 系统下挂载 u 盘 如下图所示,qt 启动之后,在超级终端中使用命令“mknod /dev/sda1 b 8 1”创建 U盘的设备节点,如下图所示。 插入 U 盘之后,如下图所示插入 U 盘之后会弹出加载信息。 在超级终端中使用命令“mount /dev/sda1 /mnt/udisk/”即可挂载 U 盘。 如下图所示。使用查找命令“ls /mnt/udisk”,可以看到 U 盘中的内容。下图中绿色文件是作者在 U 盘中建的一个小文件,这里可以看到。 linux QT 系统下挂载 tf 卡 如果用户使用的是 tf 卡,如下图所示,tf 卡插入 tf 卡槽之后会弹出下面的信息。 如下图所示,先使用命令“midir /mnt/udisk1”,使用加载 tf 卡的命令“mount/dev/mmcblk1p1 /mnt/udisk1”,p1 是上面开发板识别出来的编号,要根据实际情况修改。 然后使用查找命令“ls /mnt/udisk1”,可以看到 tf 卡中的文件。
“QtE必备知识有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!