当前位置:文档之家› 基于Qt的界面程序设计

基于Qt的界面程序设计

目录一、设计目的 (2)二、设计任务及要求 (2)三、方案设计 (2)1、内核编译 (2)2、文件系统 (2)四、嵌入式系统开发环境建立 (2)1、安装交叉编译器 (2)2、解压和安装tslib (3)3、解压和安装Qt4.7(方法1和方法2) (5)4、解压文泉驿中文正黑体字库 (8)5、制作文件系统 (8)五、烧写 (16)六、NFS挂载 (18)七、QT界面设计(LED实现) (24)1运行qt-creator-linux-86-opensource-2.7.0.bin安装qtcreater (24)2 创建一个工程 (24)3、LED界面设计---(无UI界面,直接通过代码实现) (25)八、结果 (27)九、设计过程中遇到的问题 (27)遇到的问题及解决方法 (27)1、无法远程挂载nfs服务 (27)十、设计总结 (29)十一、附录:主要程序代码 (30)一、设计目的1.进一步巩固嵌入式系统的基本知识;2.掌握嵌入式应用系统的基本结构;3.掌握嵌入式系统开发环境建立和使用;4.掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法;5.学会查阅有关专业资料及设计手册;6.QT界面编程。

二、设计任务及要求1、掌握嵌入式系统开发环境建立和使用;2、掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法;3、QT在PC上的安装;4、QT在开发板上的移植;1)、触摸屏原理及tslib库的工作原理;2)、QT设计LED灯控制,设计方案自由发挥,可以单个控制LED灯、也可以流水灯的控制,可控制流水灯的频率(1-5HZ可选);5、QT界面程序设计;6、编写设计说明书(方案的确定、设计环节的考虑及必要说明等)及设备的使用说明;7、绘制有关图纸.;三、方案设计1、内核编译有两种方案,一种是静态编译内核,另一种是动态编译内核。

静态编译在编译的过程中比较麻烦,而且还要编译镜像文件;动态编译虽然较简单,但是每次都要编译。

我选择的是动态编译,因为我暂时没有找到内核的蜂鸣器驱动,没有办法编译到内核,所以选择动态加载的方式来加载驱动来调试程序。

2、文件系统可以选择NFS远程挂载,也可以把文件系统编译成镜像文件,然后烧到板子上。

编译镜像文件的话,只要我们制作的文件里面的东西改变就要重新编译,重新导入,比较麻烦。

所以我选择NFS挂载,等所有调试都结束了以后,都没问题了,在把它做成镜像文件烧到开发板上。

四、嵌入式系统开发环境建立1、安装交叉编译器(1)、解压EABI-4.3.3_EmbedSky_20100610.tar.bz2tar xvf EABI_4.3.3_EmbedSky_20100610.tar.bz2 -C /(2)、设置环境变量export PATH=/opt/EmbedSky/4.3.3/bin:$PATH(3)、永久设置环境变量vi /etc/profile 在最后添加一行export PATH=/opt/EmbedSky/4.3.3/bin:$PATH ,保存加退出。

2、解压和安装tslib(1)、解压tslib.tar.gztar -xzvf tslib.tar.gz -C /opt/EmbedSky/(2)、创建目录mkdir /opt EmbedSky/tslib_install(3)、生成configure文件./autogen.sh(4)、配置configure文件./configure --host=arm-linux -disable-hp3600 --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld –prefix=/opt/EmbedSky/tslib_install ac_cv_func_malloc_0_nonnull=yes(5)、编译(大概20~30分钟)make(6)、安装make install(7)、如果以上步骤没错,则可以在/opt/tslib_install下出现我们需要的库文件,这些库文件在移植会用到。

3、解压和安装Qt4.7(方法1和方法2)3.1、第一种方案:(1)、解压qt-everywhere-opensource-src-4.7.0.tar.gz到/opt/EmbedSky目录后,改名为qt-source-4.7tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz -C /opt/EmbedSky/mv /opt/EmbedSky/qt-everywhere-opensource-src-4.7.0-beta2 /opt/EmbedSky/qt-source-4.7(2)、创建一个安装目录,用于安装 qt-4.7mkdir -p /opt/Embedsky/qt-4.7-arm(3)、配置configure./configure -embedded arm -release -opensource -silent -qt-libpng -qt-libjpeg -qt-libmng -qt-libtiff -nomultimedia -make libs -nomake tools -make examples -nomake docs -make demos -qt-kbd-linuxinput -qt-mouse-tslib -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-qt3support -no-nis -no-cups -no-iconv -no-dbus -no-openssl -no-fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -svg -no-webkit -no-3dnow -no-sse -no-sse2 -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-glib -prefix /opt/EmbedSky/qt-4.7-arm -I /opt/EmbedSky/tslib_install/include -L/opt/EmbedSky/tslib_install/lib(4)、编译(大概两个小时)gmake(5)、安装gmake install(6)、安装成功后/opt/EmbedSky/qt-4.7.4-arm里面有lib和plugins和bin下的qmake3.2、第二种方案(用arm_qt4.7_build脚本):(1)、创建目录qt-4.7:mkdir qt-4.7(2)、解压qt-everywhere-opensource-src-4.7.0.tar.gz到/opt/EmbedSky/qt-4.7目录(3)、把arm_qt4.7_build拷贝到qt-4.7目录下。

cp /mnt/hgfs/share/schoollinux/linux/arm_qt4.7_build/opt/EmbedSky/qt-4.7(4)、运行arm_qt4.7_build即可。

./arm_qt4.7_build(5)、arm_qt4.7_build脚本的部分内容如下(即该脚本包括了./configure配置,gmake编译,gmake install 安装,三步骤):(6)、安装成功后/opt/EmbedSky/qt-4.7/__install/arm里面有lib和plugins和bin下的qmake4、解压文泉驿中文正黑体字库5、制作文件系统(1)、将root_qt_4.5_2.6.30.4_20100601.tar.bz2 解压到根下(2)、修改文件系统的名字和用户权限(3)、触摸屏校准tslib相关文件将/opt/EmbedSky/tslib_install/lib/目录下的文件拷贝到文件系统目录的root_nfs/lib/下拷贝tslib 提供的触摸屏校准程序ts_calibrate至root_nfs/bin/目录下(4)、Qt4.7相关文件在文件系统中创建文件夹/opt/qt-4.7用于存放 qt-4.7 的生成文件mkdir -p /opt/EmbedSky/root_nfs/opt/qt-4.7将/opt/EmbedSky/qt-4.7/arm/lib 和 /opt/EmbedSky/qt-4.7/arm/plugins 拷贝到文件系统中的/opt/EmbedSky/root_nfs/opt/qt-4.7 文件夹中mkdir /opt/EmbedSky/root_nfs/opt/qt-4.7/bin目录用于存放自己的程序拷贝自己的可执行文件到/opt/EmbedSky/root_nfs/opt/qt-4.7/bin(5)、拷贝字体文件(6)、修改文件系统中的profile文件vi /etc/profileexport set QPEDIR=/opt/qt-4.5 改成 export set QPEDIR=/opt/qt-4.7export set QPEDIR=/opt/qt-4.5 改成 export set QPEDIR=/opt/qt-4.7(7)、在/bin目录下修改QT运行的脚本文件qt4vi bin/qt4第一:export set QTDIR=/opt/qt-4.5 改成export set QTDIR=/opt/qt-4.7 export set QPEDIR=/opt/qt-4.5 改成export set QPEDIR=/opt/qt-4.7第二:if [ -f /etc/pointercal ] ; then$QPEDIR/bin/hellocn -qws 1> /dev/null 2>/dev/nullelsets_calibrate# $QPEDIR/bin/mousecalibration$QPEDIR/bin/hellocn -qws 1> /dev/null 2>/dev/nullFi改成if [ -f /etc/pointercal ] ; then$QPEDIR/bin/helloword -qws 1> /dev/null 2>/dev/nullelsets_calibrate# $QPEDIR/bin/mousecalibration$QPEDIR/bin/helloword -qws 1> /dev/null 2>/dev/nullFi(8)、在vi etc/init.d/rcS下注释掉net_set和/etc/rc.d/init.d/leds start,加上ifconfig eth0 192.168.1.6。

相关主题