基于嵌入式图形界面开发与应用
基于嵌入式图形界面开发与应用
《工业控制计算机》2010年第23卷第6期29
基于嵌入式图形界面开发与应用
BasedonEmbeddedGraphicalInterfaceDevelopmentandApplication
蒋邦友
闫学文(太原科技大学电子信息工程学院,山西太原030024)
摘
要
介绍了Qt的技术,Qt/Embedded开发环境在Linux系统中的搭建。阐述Qt/Embedded应用程序如何在主机上进行交叉编译以及在TQ2440目标机上的运行上。该方法也适用于其它嵌入式产品的图形用户界面的设计。
关键词:图形用户界面,Qt,交叉编译
Abstract
ThispaperintroducestheQttechnology,theQt/EmbeddeddevelopmentenvironmentinLinuxsystembuild,andelaborateshowtheQt/EmbeddedapplicationproceduredoescarryonthecrosscompilingaswellasontheTQ2440targetmachine'smovementonthemainengine.Thismethodisalsosuitableforotherembeddedproductgraphicaluserinterfacedesign.
Keywords:graphicaluserinterface,Qt,cross
compiling
随着嵌入式消费电子产品的普及,例如PDA(个人数字助理)、智能手机、手持信息设备等,嵌入式图形用户界面(GUI:
嵌入式设备称为目标机。本文操作系统RedHat9.0是用
GraphicalUserInterface)已成为不可缺少的重要组成部分,
嵌入式图形用户界面以其丰富的图形图像信息、直观的表达方式与用户交互,被越来越多的嵌入式系统所采用,现已成为当今嵌入式领域的发展热点之一。
1Qt的分析
图形用户界面是软件与最终用户的接口,在很大程度上决
VMwareWorkstation安装在PC机上,所使用的开发板是广州天嵌计算机科技有限公司生产的TQ2440开发板。S3C2440是三星公司推出的一款功能强大,功耗极低的ARM9嵌入式CPU,应用范围非常广泛。
搭建的系统平台基本框架为嵌入式微处理器(TQ2440)+嵌入式操作系统(Linux)。第一步在PC上设置超级终端,如图1所示,这样就可以实现PC机和TQ2440目标板联通。
定着软件的成败。所以,为应用程序选择图形用户界面开发工具箱是软件开发过程中非常重要的一件事。目前,可供选择的图形用户界面工具箱较多,每个工具箱都有自己的优点和缺点。
Linux操作系统下的图形用户界面开发工具QtDesigner
提供丰富的控件,利用直接拖拽控件的方式可以很方便地进行软件界面的设计。Qt是诺基亚公司的一个的产品,是完全面向对象的跨平台图形用户界面开发工具,是Linux系统中最流行的开发工具之一,也是在Unix上自由软件开发的主流。主要有以下特点:
1)优良的跨平台特性,Qt支持下列操作系统:MicrosoftWin-dows,Linux,Solaris,SunOS,DigitalUNIX,FreeBSD,BSD/OS,QNX等等。
2)良好的面向对象,Qt的封装机制使得Qt的模块化程度非常高,可重用性较好。Qt提供了一种称为Signals/Slots的安全类型来替代Callback,这使得各个元件之间的协同工作变得十
分简单。
图1超级终端设置
第二步在RedHat9.0的终端使用#minicom-s命令设置如下:
3)Qt是一种跨平台的工具包,它对编程者隐藏了在处理不
同窗口系统时的潜在问题,使程序员避免了在文件处理、时间处理等方面所存在的依赖操作系统的细节问题。
4)开发程序的方便性,Qt提供了可视化的开发工具QtDe-signer,使用该工具可以直接向项目中添加各种组件。Qt还为应
用程序的本地化提供完全支持,所有用户界面文本都可以被译成各国语言。
2开发过程
2.1主机与目标机环境的建立
嵌入式系统应用软件的开发属于跨平台开发,需要一个交叉开发环境在PC机上编译出适用于嵌入式设备CPU架构的软件。用来开发的计算机一般称为宿主机,运行着Linux程序,
图2
端口设置
基于嵌入式图形界面开发与应用
30
完成以上两步,就建立好了主机RedHat9.0和目标机
TQ2440的开发环境。宿主机RedHat9.0装有诺基亚公司的自由版软件包Qtopia-free-src-2.2.0.rar.gz。Qtopia2.2.0安装包包含了qt-x11-3.X、qt-x11-2.X、Qt/Embedded2.3.12和qtopia2.2.0。开发Qt/Embedded应用程序所需要的工具见表1。此外还需要相应的库(1ibqte、libqpe、libqtopia)和必要的头文
件支持。
表1
开发Qt/Embedded
应用程序所需要的工具
2.2创建Qt应用程序
Qt应用程序中,首先是在main.cpp中创建QApplication对象,QApplication类负责图像用户界面应用程序的控制流和
主设置,它包含主事件循环,在其窗口系统和其它资源的所有事件被处理和调度,它也处理应用程序的初始化和结束并提供对话管理。我们以heoll.cpp例子为例。#include<qapplication.h>//QApplication类的定义#include<qpushbutton.h>//定义QPushButton类intmain(intargc,char觹觹argv)//函数是程序的入口邀
QApplicationa(argc,argv);//a是程序的QApplicationQPushButtonhello(″Helloworld选″,0);//按钮被设置成显示并
且它构成了一个窗口
hello.resize(100,30);//按钮设置成100像素宽,30像素高a.setMainWidget(&hello);//按钮被选为这个应用程序的主窗口部件
hello.show();
//用show()来使它变为可见的returna.exec();//这里就是main()把控制转交给Qt,并
且当应用程序退出的时候exec()就会返回
妖
2.3交叉编译
1)在宿主机RedHat9.0设置交叉编译器arm-linux-gcc为v3.2.3,#gedit/etc/profile添加如下内容:
#pathmunge/usr/local/arm/2.95.3/bin
pathmunge/usr/local/arm/3.3.2/bin
#pathmunge/opt/EmbedSky/crosstools_3.4.1_softfloat/arm-lin-ux/gcc-3.4.1-glibc-2.3.3/bin
保存profile文件之后#soucrce/etc/profile之后该交叉编译器成当前默认的3.2.3交叉编译器。3.3.2版本的交叉编译器用来编译Qt/Embedded;2.95.3版本的交叉编译器用来编译VIVI以及移植boa等;3.4.1_softfloat版本的交叉编译器用来编译内核、busybox、u-boot和各种程序等。
2)在宿主机RedHat9.0设置Qt/Embedded环境变量:
#exportQTDIR=/opt/qte-3.2.3//设置当前路径为/opt/qte-3.2.3
#exportLD_LIBRARY_PATH=$QTDIR/lib
#$PATH
显示内容为:
bash:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/arm/3.3.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:没有那个文件或目录
3)在目标机上设置Qt/Embedded环境变量:
#exportQTDIR=/root/qte-3.2.3
//设置当前路径为/opt/qte-3.2.3
基于嵌入式图形界面开发与应用
#exportLD_LIBRARY_PATH=$QTDIR/lib
4)设置好Qt/Embedded环境变量之后,在宿主机上就要对heoll.cpp进行编译:
#qmake-project//生成.pro文件#qmake//生成Makefile
#geditMakefile//gcc替换arm-linux-gcc,g++替换为
arm-linux-g++#make
//编译生成目标机上可执行的文件3在目标机上运行程序
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




