基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx

上传人:b****4 文档编号:4914385 上传时间:2022-12-11 格式:DOCX 页数:43 大小:1.70MB
下载 相关 举报
基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx_第1页
第1页 / 共43页
基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx_第2页
第2页 / 共43页
基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx_第3页
第3页 / 共43页
基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx_第4页
第4页 / 共43页
基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx

《基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx》由会员分享,可在线阅读,更多相关《基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx(43页珍藏版)》请在冰豆网上搜索。

基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册.docx

基于Qt的嵌入式终端程序应用毕业设计记事本与电子相册

 

毕业论文(设计)

 

题目

基于Qt的嵌入式终端应用程序开发

学生姓名

学号

指导教师

系部名称

专业班级

完成时间

 

摘要

随着信息产业的发展,嵌入式产品变得越来越成熟,同时,日常生活对嵌入式产品的实用性、美观性和视听娱乐性提出了更高的要求。

手持式的嵌入式产品中良好的人机交互界面成了嵌入式系统设计的一项关键技术,各种嵌入式终端都需要一个图形化的人机接口界面。

记事本和电子相册是嵌入式系统开发出的基本产品,利用嵌入式终端开发出一种界面美观、功能丰富、交互性好的记事本和电子相册,具有一定的实用意义和价值。

论文的目的是设计和实现嵌入式终端下的记事本和电子相册。

论文首先介绍了Linux和Qt的优点,然后分析Qt在软件开发中的编程机制。

根据嵌入式终端程序应用的特点对记事本和电子相册进行设计需求分析、具体界面设计和整体结构的设计。

本课题实现了记事本的新建、打开、编辑、保存、另存为等功能。

电子相册实现了图片放大、缩小、旋转、浏览、前进、后退等功能。

关键词:

嵌入式Linux;Qt;嵌入式产品;记事本;电子相册

 

Abstract

Withthedevelopmentofinformationindustry,theembeddedproductsbecomesmoreandmoremature,Atthesametime,higherrequirementswereputforwardinpracticable,aesthesticsandaudiovisualofdailyembeddedproducts.Hand-heldembeddedproductswithgoodhuman-computerinteractioninterfacehasbecomeakeytechnologyofembeddedsystemdesign.AndAllsortsofembeddedterminalneedagraphicalman-machineinterfaces.Notepadandelectronicphotoalbumarebasicproductswhichweredevelopedbyembeddedsystem.Usingtheembeddedterminaldevelopedanotepadandelectronicphotoalbumwithbeautifulinterface,goodinteractvityandrichfunctionshasacertainpracticalsignificanceandvalue.

Theaimofthispaperistodesignandimplementanotepadandanalbumintheembeddedterminalenvironment.First,IintroducetheadvantagesofLinuxandQt,ThenanalysisedtheQtprogrammingmechanisminsoftwaredevelopment.Iproceededthedesignrequirementanalysis,thespecificinterfacedesignandtheoverallstructureofdesignfornotebookandelectronicphotoalbumaccordingtothecharacteristicsoftheembeddedterminalprogramapplication.Thisprojectdesignedandimplementedthefunctionsofnotebooksuchasnewfile,openfile,editfile,savefile,saveasandotherfunctionsaswellastherelevantfunctionsofalbumsuchasenlarge,minify,rotate,browse,forwardandbackwardbasedonthealgorithmsofnotepadandalbum.

Keywords:

EmbeddedLinux;Qt;embeddedproducts;notepad;album

 

第一章绪论

1.1课题研究背景和意义

随着嵌入式产品的普及应用,产品要求嵌入式系统具有网络和图形功能。

由于具有强大的网络功能以及低成本,利用源代码开放的Linux搭建的嵌入式操作系统得到越来越广泛的应用。

其能够提供全功能的桌面计算,定制非常方便并且支持大多数嵌入式系统上使用的芯片,包括StrongARM(AdvancedRISCMachines,先进RISC机器),MIPS(MillionInstructionsPerSecond,每秒百万条指令)和PowerPC(personalcomputer,个人计算机)等。

Linux操作系统可以使用一个功能完备的高可靠、高性能、可配置的轻量级系统。

Qt之所以可以支持跨平台通用软件的开发主要在于其源代码实现了跨平台特性,它可以使用同一个源程序在不同的平台上进行编译链接然后生成目标代码,运行效果也与之前一样。

这种方法充分实现了跨平台运行。

这种基于源代码的跨平台特性不仅可以发挥各个平台的特点,发挥多平台的优势也可以在新的平台上实现原有的功能,降低了开发的成本,同时也可以改进原有代码的缺陷,使软件质量得到提高,从而延长了软件的生命周期。

所以,研究基于Qt的嵌入式中断程序应用是一个非常有意义的课题,具有重要的商业价值[2]。

1.2嵌入式发展的现状与未来

1.2.1展头露角的嵌入式产品

随着科技的发展,嵌入式技术也慢慢标的成熟,其产品已经深入到生活的各个方面,例如:

全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居。

这些产品为嵌入式带来了巨大的商机[3]。

利用嵌入式开发出来的产品大量运用到人们的日常生活之中,交换机、路由器和Modem(Modulator&DEModulator,调制解调器)沟通了信息的高速公路,机器人、家用汽车的电子系统以及构建CIMS(ComputerIntegratedManufacturingSystems,计算机集成制造系统)的DCS(DorsalColumnStimulator,脊柱刺激器)都有嵌入式的产品。

信息家电(InternetAppliances)、电子商务、手机、电话、多媒体产品、电子阅读机都是最有时代特性的嵌入式产品。

由此可见,嵌入式产品的浪潮已经开始冲击人类的生活,对人们的生活产生了巨大的影响,也推动着社会科技的进步。

1.2.2嵌入式软件技术面临挑战

互联网时代的嵌入式产品为商品市场拓展了美好的前景,也为社会注入了生命力,可是,时代的发展对信息的要求越来越高,哪一种产品能够能够拥有强大的信息处理能力便会在竞争中取胜,这就为嵌入式软件技术带来了新的巨大挑战。

其面临的挑战主要有[5]:

(1)对强大开发工具和支持操作系统的需求

随着因特网技术的成熟,ICP(InternetContentProvider,在互联网上提供内容服务与提供电子商务的厂商)和ASP(ActiveServerPage,动态服务器主页)在网上提供的信息内容日趋丰富、应用项目多种多样。

日常生活所用的电饭煲、微波炉、电磁炉、电冰箱、手机功能变得越来越强大,其内部结构也随之变得越来越复杂,为了满足日益升级的应用功能,这就要求嵌入式处理器例如32位、64位RISC(ReducedInstructionSetComputing,精简指令集)芯片或信号处理器DSP(DigitalSignalProcessing,数字信号处理)具备更加强大的处理信息能力;多任务编程技术和交叉开发技术以及简化应用程序设计等都对嵌入式应用软件提出了更高的要求[14]。

(2)网络通用接口的需求

21世纪是网络的世纪,面对联网的要求,嵌入式的设备必需配有通信接口以实现上网功能,相应的需要TCP/IP(TransferControlProtocol/InternetProtocol,传输控制协议/网际协议)协议簇软件的支持,新一代嵌入式设备还需具备IEEE1394(苹果公司开发的串行标准)、USB(UniversalSerialBusIntel,公司开发的通用串行总线架构)、CAN(ControllerAreaNetwork,控制器局域网络)、Bluetooth(蓝牙)或IrDA(InfraredDataAssociation,红外数据协会)通信接口来满足一些互相关联器具的要求。

除此之外,为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML(HypertextMarkupLanguage,超文本链接标示语言)、WML(WirelessMarkupLanguage,无线标记语言)等[6]。

(3)电子设备小型化、微功耗和低成本的需求

为了实现电子设备的小型化、微功耗和低成本,而又不降低设备的相应性能和对信息的处理能力,要求嵌入式设备选用最佳的编程模型还有不断改进机器内部的算法结构,这对嵌入式提出了巨大的挑战。

(4)多媒体人机界面的需求

人们之所以喜欢一种电子产品很大程度上在于其精巧的人机结合的亲和力。

手写文字输入、语音拨号、收发电子邮件以及彩色的图形图像的设计都是为了满足更加贴近人们的需求而开发的,可是自然的人机交互界面,人们与信息终端交互要求以GUI屏幕为中心的多媒体界面的开发升级对于嵌入式依旧是一个有待努力的短板。

1.2.3软件新技术

(1)行业性开放系统和自由软件技术

面对当今日趋激烈的国际市场竞争态势,走行业开放系统和自由软件技术是嵌入式软件技术发展和抢占先机的快捷通道。

实现软件重用、构建兼容、维护方便可以增强产品的竞争力,国际上一些自由软件的发展对嵌入式软件产业产生了深远的影响,GPL(GeneralPublicLicense,GUN通用公共许可证)概念和GNU(GrantorUnderwrittenNotes,银团承担票据)软件在日常生活、生产的应用推动了嵌入式软件的发展,也为我国嵌入式产业的发展提供了良好的机遇和条件[5]。

(2)IP构件库技术的出现

嵌入式系统实现的最高形式是单一芯片系统(SOC,SystemOnChip),而SOC(SystemonChip,片上系统)的核技术是IP(IntellectualPropertyKernels,知识产权核)构件。

IP核有硬件核、软件核和固件核,硬件核主要指8/16/32/64位MPU(MicroProcessorUnit,微处理器)核或DSP核。

硬件提供商以数据软件库的形式,将其久经验证的处理器逻辑和芯片版图数据,供EDA(ElectronicDesignAutomatic,电子设计自动化).工具调用在芯片上直接配置MPU/DSP功能单元;而软件核则是软件提供商将SOC所需的RTOS(RealTimeOperatingSystem,实时操作系统)内核软件或其它功能软件,如通信协议软件,FAX功能软件等构件标准API方式和IP核构件形式供IDE(IntegratedDriveElectronics,电子集成驱动器)和EDA(ElectronicDesignAutomation,电子设计自动化)工具调用制成FLASH(fastlargeareascanhardware,快速大面积扫描硬件)或ROM(Read-OnlyMemory,只读存储器)可执行代码单元,加速SOC嵌入式系统定制或开发。

目前一些嵌入式软件供应商纷纷把成熟的RTOS内核和功能扩展件,以软件IP核构件形式出售,如MICROTEC(扫描仪制造商)的VRTXOCforARM就是典型例子。

正在兴启的IP构件软件技术正为一大批高智小型软件公司提供发展机遇[9]。

(3)无线网络操作系统的出现

未来移动通信网络不仅能够提供丰富的多媒体数据业务,而且能够支持更多功能和更强的移终端设备。

为了有效地发挥第三代移动通信系统的优势,许多设备厂商针对未来移动设备的特点努力开发无线网络操作系统(M.TimJones,2008)。

1.3课题研究内容

我们主要运用嵌入式技术来打造一个功能相对丰富,操作起来简单、快捷,界面美观实用的嵌入式终端应用。

其具有支持各种控件、各种图形格式,具有体积小、可裁剪、可移植的的特性,它可以在嵌入式终端运行,对各种平台通用。

本文通过对嵌入式Linux和Qt的分析,在嵌入式Qt的基础上,开发了面向嵌入式终端的记事本和电子相册应用软件。

记事本不仅支持英文输入和显示,而且支持中文和日文的显示,还支持记事本文件的浏览、编辑、删除等功能。

电子相册不仅支持中、英、日文图片名字的显示,还支持如放大、缩小、旋转等各种方式下的图片浏览。

它们体积小,移植方便,适用于掌上电脑、智能电话及一些高端的嵌入式设备中。

此外它作为一种小型GUI解决方案,可用于那些对GUI大小要求苛刻的各种应用系统中。

 

第2章Linux和Qt简介

2.1Linux主要特性

Linux是个完全内存保护、以Unix核心为基础类似于多用户、多任务操作系统多任务多进程的系统。

其程式源代码向大众公开,任何人都可以修改并在通用公共许可证GNU(GeneralPublicLicense)下发行,大家都可以对操作系统进行定制,同时由于有GPL的控制,公众开发并发行的所有代码与视图窗口都可以相互兼容,该系统便不会分裂。

该系统可以支持现有的大部分芯片,例如:

X86,Alpha,SPARC(SUN公司的工作站系统),MIPS,PPC(PowerPC的缩写),ARM,NEC等。

当Linux用户遇到困难时,可以通过互联网向所有的Linux开发者请教。

众多用户开发的gcc、g++都可以在Linux系统下分享,其他开发者有人容易得到。

除此之外,Linux还集成了Unix用户所熟悉的开发工具,所以,Unix上几乎所有的软件都可以移植到Linux上运行,这就使得Linux使用得更方便。

另外,Linux还提供了强大的网络功能,有多种可选择窗口管理器(Xwindows)。

所有的这些优点让Linux更受用户的青睐[4]。

Linux的跨平台特性使得众多的研究项目都选择Linux作为开发工具,通过Linux方便的开发工具开发完后移植到其他平台进行应用,这加快了整个项目中软件与硬件的开发过程。

Linux具有许多其他系统所不具有的优点,例如,因为Linux是集公众的智慧开发的,其不受商家的控制,所以研究者在进行开发的时候不需要向公司付费购得许可证。

Linux还有另外一个巨大的优点,那就是其免费的源代码,这可以大量的节省开发费用。

为了符合当今网络世界的发展趋势Linux内部还集成了网络支持,使用户更为方便。

由于Linux的高度模块化,这使用户可以便捷地添加所需要的各种部件。

Linux系统安装在台式机上以后,该系统便走进了千家万户,日趋广泛。

基于Linux的杰出特点与优势,当今社会的主流与趋势是Linux,其蕴藏的巨大商业价值必然给信息也电子产业甚至是社会生活带来巨大的冲击也会带来巨大的机遇。

Linux操作系统将为嵌入式产品创造辉煌的未来。

2.2Qt开发工具简介

2.2.1Qt主要特性

Qt支持Unix和Linux系统,为了使开发者更加方便快捷,Nokia发布了Windows版了Qt,其在Windows下运行不需要占用太大内存,比Linux下运行更节省内存。

Qt内部包含了许多开发工具,Linux下的KDE环境也是基于Qt开发而成的。

其内部开发工具有:

Qt/X11、基于Framebuffer(帧缓冲区)的Qt/Embedded、快速开发工具QtDesigner以及国际化工具QtLinguist(Qt语言学家)等。

Qt的主要特点是面向对象,容易扩展,对各个模块进行了良好的封装,使各个模块都具有较好的可重用性,它还允许真正的组件编程;其优良的跨平台特性使用Qt类编写的程序也可以在其他平台上编译、运行,使跨平台开发变得容易。

对于窗口与窗口,界面与界面之间的通信,Qt没有使用与其他软件所采用的函数回调方法,其采用了一种全新的并可选的对象间通信机制通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效,这种通信方式叫做“信号与槽”。

Qt所具有的的以上各种优点使得各个组件之间的协同工作变得简单,非常适合真正的构件编程。

此外,Qt是直接基于Xlib(XWindowSystem协议)的,不依赖Motif(开放软件基金会的图形接口)工具包,所以它的执行效率比一般的基于平台的代码的执行效率要高[10]。

2.2.2Qt编程机制简介

(1)Qt系统的信号与槽机制

在图形用户界面编程的时候,我们总希望一个窗口部件的变化能够引起其他窗口部件的响应,我们更希望任何一类的对象可以和其他对象进行通信。

Qt之前的工具包在进行窗口通信的时候使用的是一种叫做回调的通讯方式。

回调是指一个函数的指针,在通信的时候通常是把一个函数的指针传递给处理函数,而处理函数则在适当的时候调用回调。

但是,回调有两个主要缺点,第一,在进行回调的时候我们无法确定处理函数使用了正确的参数,这样便容易导致系统崩溃。

第二,回调是一种将图形用户接口的功能元素紧紧绑定的通讯方式,这样很难将开发进行独立分离。

信号与槽是Qt的中心特征,也是其区别于其他工具包的主要特点。

Qt的信号与槽机制与其他通讯机制是不同的,我们在进行Qt窗口设计的时候要实现窗口功能就需要进行信号与槽的配置。

Qt的窗口部件预先定义了许多信号,我们在设计的时候需要对自己要用的信号进行处理,我们则可以通过继承来加入我们自己的信号,信号与槽设定好以后,当对象内部状态发生改变后,信号就被发射出去。

当一个信号被发射出去,与它链接的槽就会被执行,好比调用一个实现设定好的函数一样。

信号/槽机制完全不依赖于任何一种图形用户界面的事件回路,当所有的槽都返回后发射的信号也将返回。

信号与槽的运作不需要类与类之间了解明细,这样我们开发出来的代码便具备了较高的可重用性。

信号与槽的运作可以简化为一下实例:

假设类X的状态发生变化需要另一个对象Y响应,执行类Y的成员函数slot()用来处理这种变化。

所谓的信号是指类X所定义的一个成员函数,例如signal(),当X发生变化的时候,对象X将状态信息封装在该函数的参数中,调用该函数。

所谓的槽也就是类Y的一个成员函数,比如上述的slot()。

我们使用Qt提供的QObject:

:

connect()函数将一个信号函数与槽绑定,当函数被调用时,与其一同绑定的槽函数便会被调用,这是一种高效灵活的处理方式。

开发人员在进行软件设计的时候只需要指定一个类含有哪些信号函数和那些槽函数,Qt自带的一种处理信号与槽的机制会自动来处理信号与槽函数的绑定,一个信号被调用时,与其绑定的槽函数相应被调用,而且一个信号允许与多个槽进行绑定,Qt会执行所有与该信号绑定的槽函数[11]。

总体来看,信号和槽构成了一个强有力的组件编程机制。

如果一个类要使用信号与槽机制,它就必须是从QObject或QObject的子类继承,而且类的定义必须加上Q_OBJECT宏。

signals、slots和emit是Qt特有的关键字,分别用来表示信号、槽、和发送信号,移除这些关键字和预处理程序,就可以使用标准的C++编译器。

槽同其他函数一样也具有访问权限,只是槽的访问权限决定了谁可以和它相连,如一个publicslots:

包含了任何信号都可以相连的槽(AndrewKrause,2007)。

一个protectedslots:

包含了只有这个类和它的子类的信号才能连接的槽。

这就是说这些槽只是类的实现的一部分,而不是它和外界的接口。

一个privateslots包含了只有这个类本身的信号可以连接的槽,甚至它的子类都没有获得连接的权利。

(2)Qt元对象系统

Qt中的元对象系统是一个基于下列三类:

QObject类、类声明中的私有段中的Q_OBJECT宏、元对象编译器(MOC),用来处理对象间通讯的信号/槽机制、运行时的类型信息和动态属性的系统。

MOC读取C++源文件。

如果它发现其中包含一个或多个类的声明中含有Q_OBJECT宏,它就会给含有Q_OBJECT宏的类生成另一个含有元对象代码的C++源文件。

这个生成的源文件可以被类的源文件包含(#include)到或者和这个类的实现一起编译和连接。

除了提供对象间通讯的信号和槽机制之外(介绍这个系统的主要原因),QObject中的元对象代码实现其它特征:

1)className()函数在运行的时候以字符串返回类的名称,不需要C++编译器中的本地运行类型信息(RTTI)的支持。

2)inherits()函数返回这个对象是否是一个继承于QObject继承树中一个特定类的类的实例。

3)tr()和trUtf8()两个函数是用于国际化中的字符串翻译。

4)setProperty()函数和property()函数,这两个函数是用来通过名称动态设置和获得对象属性的。

5)metaObject()函数返回这个类所关联的元对象。

虽然使用QObject作为一个基类而不使用Q_OBJECT宏和元对象代码是可以的,但是如果Q_OBJECT宏没有被使用,那么这里的信号和槽以及其它特征描述都不会被提供。

根据元对象系统的观点,一个没有元代码的QObject的子类和它含有元对象代码的最近的祖先相同。

举例来说就是,className()将不会返回你的类的实际名称,返回的是它的这个祖先的名称。

故强烈建议QObject的所有子类使用Q_OBJECT宏,而不管它们是否实际使用了信号、槽和属性(JonathanCorbet,2005)[15]。

(3)跨平台特性

1)Qt支持各种操作系统,例如:

MicrosoftWindows95/98、MicrosoftWindowsNT、Linux、Solaris、SunOS、HP-UX、DigitalUNIX(OSF/、Tru64)、IRIXFreeBSDBSD/OS、SCO、AIX、OS390和QNX等;

2)Qt是一个跨平台的C++图形用户界面应用程序框架;它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。

3)Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

 

第三章开发平台简介

3.1S3C4210开发板简单介绍

Samsung公司推出的16/32位RISC处理器S3C2410A,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。

它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。

同样它还采用了一种叫做AdvancedMicrocontrollerBusArchitecture(AMBA)

新型总线结构。

S3C2410A的显著特性是它的CPU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1