ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:82.95KB ,
资源ID:5795824      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5795824.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于qt的电子相册说明书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于qt的电子相册说明书.docx

1、基于qt的电子相册说明书毕业设计说明书基于QT的记事本和电子相册学生姓名: 学号: 学 院: 专 业: 指导教师: 2014年6月基于QT的记事本和电子相册摘 要越来越多的设备需要一个图形化的人机接口界面(GUI),良好的人机交互界面是各个软件系统设计的一个关键技术,尤其是在给广大人们的使用中,对程序的实用性、美观性和视听娱乐性提出了更高的要求。而记事本和电子相册以其实用性和良好的观赏性逐渐成为人们查看和使用中不可或缺的组成部分。开发基于Qt的界面美观、功能丰富的记事本和电子相册,具有一定的实用意义和价值。本文的目标是设计和实现基于Qt的记事本和电子相册。论文首先介绍了Qt的优点和Qt开发环境

2、的搭建,着重分析了Qt在软件开发中的编程机制。并根据嵌入式应用的特点对基于Qt的记事本和电子相册进行了设计需求分析、具体界面的设计和整体结构的设计。本课题根据记事本和电子相册的算法,设计并实现了记事本的相关功能(如:新建、打开、编辑和删除文件等)和电子相册的相关功能。最后对关于论文进一步工作的方向进行了简要的讨论。关键字: Qt, 图形用户界面, 记事本,电子相册 Embedded terminal application program development based on QTDevelopment of notepad and electronic albumAbstractMore

3、 and more embbeded Embedded Terminal need graphics user interface(GUI). A good Human-Computer Interaction interface is the key technology of embedded system design. Higher demands of the practicality, aesthetics and audio-visual entertainment of embedded terminal are needed, especially in embbeded s

4、ystem handheld device. Notepad and electronic photo album are becoming an integral part of embedded device for their pracicality and good viewing. It has some practical significance and value to develop a notepad and an album with beautiful interface, rich functions and good interaction based on emb

5、edded terminal.The aim of this paper is to design and implement a notepad and an album in the embeded terminal environment. This paper presented the advantage of Linux and the building of QT developing environment, focused on the programming mechanism of developing software with Qt. It analysed the

6、needs of the design, designed the specific interface and overall structure of notepad and album in the embeded terminal environment according to features of embedded application.This project designed and implemented the relevant functions of norepad(such as new file,open file ,edit file and delete f

7、ile) as well as the relevant functions of album(such as enlarge 、minify、 rotate and move the picture) based on the algorithms of notepad and album. Finally, brief disscusion about the further reaserch of this paper was presented.Key words:Qt,GUI,notepad,alb 1 引言1.1 课题研究背景和意义随着各种电子产品的不断发展和不断的进步,现在往往要

8、求用户操作系统有图形化的功能。一个拥有良好舒适的图形化界面的程序可以使用户更加喜欢和更好的运用软件进行操作1。虽然市场上现在已经有了众多的优秀的GUI应用软件,但随着近年来计算机技术的迅速发展,当新硬件、新技术出现时,计算机的体系结构、指令系统和操作系统都可能发生相应的改变,这势必会导致一部分应用软件在新环境下无法正常运行2。如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件成果。而Qt是1991年奇趣科技开发的一个跨平台的C+图形用户界面应用程序框架3。它提供给应用程序开发者简历艺术级的图形用户所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。在源代码级上实

9、现了跨平台特性,极大的支持了跨平台通用软件的开发。Qt可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,称为“一次编写,随处编译”,利用这种方法充分实现了程序的跨平台运行4。这种基于源代码的跨平台特性不仅解决了性能的问题,而且可以发挥各个平台的优势,充分利用每个平台自身的特点;并且既可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件的质量,延长软件生命期。因此,基于Qt的应用程序软件的开发是一个非常有意义的课题,具有重要的研究和商业价值。1.2 基于Qt的软件技术发展现状和未来1.2.1 标志性的产品已露头角 计

10、算机应用的普及、互联网技术的实用以及纳米微电子技术的突破,正有力推动着21世纪工业生产、商业活动、科学实验和家庭生活等领域自动化和信息化进程。全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居,为嵌入式产品造就了崭新而巨大的商机。除了沟通信息高速公路的交换机、路由器和Modem,构建CIMS所需的DCS和机器人以及规模较大的家用汽车电子系统5。最有量产效益和时代特征的嵌入式产品应数因特网上的信息家电(Internet Appliances),如Web可视电话、Web游戏机、Web PDA(俗称电子商务、商务通)、WAP电话手机、以及多媒体产品,如STB(电视机顶盒)、

11、DVD播放机、电子阅读机6。1.2.2 基于Qt的软件技术面临挑战 以信息家电为代表的互联网时代基于Qt的产品,不仅为软件应用市场展现了美好前景,注入了新的生命;同时也对软件技术提出新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理,此外,当然还需对付更加激烈的市场竞争。1.3 课题研究内容针对各种不同应用平台产品的高度个性化,其外观、与用户交互的界面千差万别的特点,故而系统的设计目标是意在打造一个能在各产品用户端运行、通用的、可以方便的支持各种控件、各种图形格式,具有体积小、可裁剪、可移植的这样一个面向用户的应用程序系统,使各种不同的设备能具有美观

12、的用户界面,相对比较丰富的功能,操作起来简单而又直观7。本文通过对Window和Qt的分析,在Window下Qt的基础上,开发了面向Windows终端的记事本和电子相册应用软件。记事本可以将文件下的记事本文件以其原有存放的形式显示出来,并可以实现记事本文件的新建、打开、编辑和内容保存等功能。电子相册不仅支持一些图片文件的浏览,删除等的功能而且还支持图片的放大、缩小、旋转以及图片以幻灯片形式播放和暂停等功能。他们体积小,移植方便,适用于很多的系统8。此外它作为一种小型GUI解决方案,可用于那些对GUI大小要求苛刻的各种应用系统中9。2 Qt简介2.1 Qt开发工具简介2.1.1 Qt主要特性Qt

13、是一个跨平台的C+图形用户界面库,由挪威TrollTech公司开发,目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速开发工具Qt Designer以及国际化工具Qt Linguist等。人们所熟知的Linux下面的KDE环境就是基于Qt开发而成的。Qt支持Unix和Linux系统以及Windows系统。Qt的主要特点有: 面向对象, 很容易扩展, 并且允许真正的组件编程; Qt对各个模块进行了良好的封装,使各模块可重用性较好;优良的跨平台特性, 使用Qt类编写的程序可以实现 “一次编码,到处编译”10,极大的降低了跨平台开发的难度;构件支持, 对于对象间通信,Qt

14、没有采用函数回调的方法,而是采用了一种全新并且可选的被称为“信号与槽” 的对象间通信机制,通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效。 Qt的这些特点使它非常适合于真正的构件编程, 同时使各个组件之间的协同工作变得十分简单,并且 Qt是直接基于 Xlib的,不依赖 Motif 工具包, 所以它的执行效率比一般的基于平台的代码的执行效率要高。2.1.2 Qt编程机制简介(1)QT 的信号与槽机制介绍 信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别

15、于其它工具包的重要地方。信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C+ 语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C+ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针11。但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。 信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,

16、不会像回调函数那样产生 core dumps12。所有从 QObject 或其子类 ( 例如 Qwidget) 派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射 (emit) 出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号13。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。 信号和槽的机制是类型安全的:一个信号的签名必须与它的接收槽的签名相匹配。(实际上一个槽的签名可以比它接收的信号的签名少,因为它可以忽略额外的签名。)

17、因为签名是一致的,编译器就可以帮助我们检测类型不匹配。它以警告的方式报告类型错误,而不会使系统产生崩溃。信号和槽是宽松地联系在一起的:一个发射信号的类不用知道也不用注意哪个槽要接收这个信号14。Qt的信号和槽的机制可以保证如果你把一个信号和一个槽连接起来,槽会在正确的时间使用信号的参数而被调用。信号和槽可以使用任何数量、任何类型的参数。它们是完全类型安全的:不会再有回调核心转储(core dump)。你可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构

18、造了一个强大的部件编程机制。总体来看,信号和槽构成了一个强有力的组件编程机制。如果一个类要使用信号与槽机制,它就必须是从QObject或QObject的子类继承,而且类的定义必须加上Q_OBJECT宏。signals、slots和emit是Qt特有的关键字,分别用来表示信号、槽、和发送信号,移除这些关键字和预处理程序,就可以使用标准的C+编译器。槽同其他函数一样也具有访问权限,只是槽的访问权限决定了谁可以和它相连,如一个public slots:包含了任何信号都可以相连的槽(Andrew Krause,2007) 。一个protected slots:包含了只有这个类和它的子类的信号才能连接的

19、槽。这就是说这些槽只是类的实现的一部分,而不是它和外界的接口。 一个private slots:包含了只有这个类本身的信号可以连接的槽,甚至它的子类都没有获得连接的权利。(2) Qt元对象系统Qt中的元对象系统是用来处理对象间通讯的信号/槽机制、运行时的类型信息和动态属性系统。它基于下列三类:QObject类、类声明中的私有段中的Q_OBJECT宏、元对象编译器(moc)。moc读取C+源文件。如果它发现其中包含一个或多个类的声明中含有Q_OBJECT宏,它就会给含有Q_OBJECT宏的类生成另一个含有元对象代码的C+源文件。这个生成的源文件可以被类的源文件包含(#include)到或者和这个

20、类的实现一起编译和连接。 除了提供对象间通讯的信号和槽机制之外(介绍这个系统的主要原因),QObject中的元对象代码实现其它特征: (1)className()函数在运行的时候以字符串返回类的名称,不需要C+编译器中的本地运行类型信息(RTTI)的支持。 (2)inherits()函数返回这个对象是否是一个继承于QObject继承树中一个特定类的类的实例。 (3)tr()和trUtf8() 两个函数是用于国际化中的字符串翻译。 (4)setProperty()函数和property()函数,这两个函数是用来通过名称动态设置和获得对象属性的。 (5)metaObject()函数返回这个类所关联

21、的元对象。 虽然使用QObject作为一个基类而不使用Q_OBJECT宏和元对象代码是可以的,但是如果Q_OBJECT宏没有被使用,那么这里的信号和槽以及其它特征描述都不会被提供。根据元对象系统的观点,一个没有元代码的QObject的子类和它含有元对象代码的最近的祖先相同。举例来说就是,className()将不会返回你的类的实际名称,返回的是它的这个祖先的名称。故强烈建议QObject 的所有子类使用Q_OBJECT宏,而不管它们是否实际使用了信号、槽和属性15。3 嵌入式终端应用程序之记事本和电子相册架构设计3.1 记事本架构设计3.1.1 记事本设计需求记事本可以讲文件下的记事本文件按文

22、本的形式显示出来,并可以实现记事本文件的新建、打开、编辑和文本的删除等功能;记事本可以根据文件内容的多少来实现文本的滚动显示,可以通过计算机键盘对文本进行快速的编辑等。(1)记事本新建功能:可以创建一个新的记事本文件。 (2)打开记事本的功能:根据文件列表选择打开指定的文件,打开指定文件时,显示打开文件的文件内容在文件编辑界面上,文件内容过多时可以滚动显示,并在文件编辑界面的上方滚动显示打开的文件的文件名。(3)控制记事本编辑格式功能:编辑文件时,文本内容输入到当前界面的右端边界处自动换行,也可以利用键盘操作执行换行动作。输入的文本内容多于当前屏幕显示范围时出现纵向滚动条,随着文本输入滚动显示

23、内容。(4)记事本内容修改提示功能:若在打开的文件中对其内容进行了修改,在关闭文件时将会提示文件的内容已经被修改的消息,用户可选择是否保存修改后的内容。(5)记事本内容增删改查功能:在打开记事本文件后,可以对记事本文件中的内容进行编辑,如增加、删除、修改、撤销修改、查找等。这一旦发生变化,则在选择保存后,文件列表的文件也发生了改变。(6)记事本保存功能:可以对操作了的记事本文件进行保存,在选择保存记事本文件后,文件名立即显示在文件列表上。3.1.2 记事本界面设计(1)新建文件编辑界面:如图3.1所示,界面上方显示功能界面名称。工具栏上面有各种操作的按钮,中间区域为文本编辑区,用于接收文本的输

24、入,界面下方有提示和日期时间的显示。界面可以实现扩大缩小的功能。图3.1 记事本界面(2)打开文件内容显示界面:如图图3.2所示,界面中间区域为文件内容的显示区,可以接收文本的编辑和修改。 界面下方左侧为显示文件导入完毕提示。图3.2 打开记事本界面记事本功能菜单设计:如图3.3所示,记事本工具栏上依次为新建按钮、打开按钮、保存按钮、剪切按钮、复制按钮、粘贴按钮、撤销按钮、查找按钮以及返回上一界面按钮。图3.3 记事本菜单界面记事本查找消息框设计:如图3.4所示,在输入框中输入要查找的内容,点击查找下一个按钮,就会在显示文本区域找到要查找的内容并且会标记出来。图3.4 记事本查找界面记事本消息

25、提示框设计:如图3.5所示,消息提示框的显示区域显示提示动画和提示的内容。界面的下方左侧为确认保存功能按钮,下方中间为不保存按钮,下方右侧为取消操作按钮。图3.5 记事本保存界面3.1.3 记事本结构设计如图3.6所示,记事本界面是记事本的入口和出口。记事本通过调用文件列表功能菜单对文件执行各种操作。在文件列表功能菜单中根据所选择的菜单条目进入相应的功能界面,如新建文件编辑界面、文件显示内容界面等。各个界面都有自己的功能菜单,通过调用自己的功能菜单对当前界面进行下一步的操作,如当新建文件界面显示时,可通过菜单按钮进行增加、删除、修改和查找内容的操作;当打开文件时在文件内容的显示界面上,可通过菜

26、单按钮进行增加、删除、修改和查找内容的操作以及可通过修改文件提示框选择是否保存修改后的文件内容。图3.6 记事本结构设计3.2 电子相册架构设计3.2.1 电子相册设计需求电子相册支持jpg、png、gif、xpm和bmp格式图片的浏览,并可以对图片进行放大、缩小或旋转角度显示。电子相册还支持幻灯片模式浏览图片,并可以对图片进行删除等操作。(1)在图片文件所在目录读取所有扩展名为jpg、xpm、png、bmp、gif格式的图片文件,并将读取的图片文件按顺序存放起来,在界面上显示放入的第一张图片。(2)删除图片功能:对当前界面上显示的图片可执行删除操作,删除以后所查看的图片中不再显示已删除的图片

27、并且显示图片位置和总数目的数据也相应的发生变化。(3)浏览图片功能:对当前显示的图片可以执行浏览的功能,若图片原本大小超过图片浏览区域(即相框)的大小,则会自动调整变成适应图片浏览区域的最大尺寸。若图片原本大小没有超过图片浏览区域大小,则以原始尺寸在图片浏览区域显示。可对打开的图片进行放大、缩小、向左旋转全屏模式与返回原始尺寸等一系列的浏览模式操作。(4)图片放大功能:在当前图片尺寸大小的基础上,图片可逐级放大,以尺寸的0.25倍递增,最大可放大到打开图片时显示的初始尺寸的3倍。(5)图片缩小功能:在当前图片尺寸大小的基础上,图片可逐级缩小。最小可缩小到打开图片时显示的初始尺寸的0.333倍。

28、(6)图片旋转功能:打开图片后,可在图片的任意状态下对图片进行旋转操作。可在当前状态下,将图片向左旋转,每次旋转角度差值为90。图片旋转后会自动适应窗口大小,完整显示图片。(7)图片全屏显示功能:可以将图片执行全屏显示。为了支持点击操作,全屏显示时不覆盖相关功能按钮。(8)幻灯片模式自动浏览功能:可从当前选定的图片开始执行自动播放图片功能,初始设定播放速度为1秒间隔。(9)图片查看功能:可以按上一张、下一张的按钮用户自行的对图片进行查看。(10)给用户提供友好的图形交互界面,并合理安排界面元素布局,使其美观并且方便用户操作3.2.2 电子相册界面设计电子相册功能菜单设计:如图3.7所示,界面上

29、方显示功能界面名称,中间显示区域为所加载的图片的显示。下面功能菜单栏依次为加载照片文件按钮、原图片大小显示按钮、图片放大按钮、图片和屏幕一样大小按钮、图片缩小按钮、图片旋转按钮、显示上一张图片按钮、图片显示当前位置和总照片数label、显示下一张图片按钮、删除当前所显示图片按钮、播放图片幻灯片按钮、暂停图片幻灯片按钮、返回上一界面按钮和退出系统按钮。图3.7 电子相册界面如图3.8所示,在点下旋转按钮以后,图片会顺时针旋转90度显示出来。使对图片查看有更好的便捷。图3.8 图片旋转效果如图3.9所示,在点下放大按钮后,图片将放大,在放大到一定比例后,放大按钮将不可点击。图3.9 图片放大效果如

30、图3.10所示,在点下缩小按钮后,图片将缩小,在缩小到一定比例后,缩小按钮将不可点击。图3.10 图片缩小如图3.11所示,在点下恢复按钮后,图片将填充整个界面,此时,不可以进行放大,缩小功能,只有在点下原图按钮后放大缩小按钮才可以继续使用。 图3.11 图片适应屏幕3.2.3 电子相册结构设计如图3.12所示,图片列表界面为电子相册的入口和出口。通过图片列表功能菜单,可执行打开图片进行浏览的功能,并根据所选择的功能进入图片浏览界面。进入图片浏览界面可通过图片浏览功能菜单,对当前显示的图片执行各种操作,从而进入相应的图片浏览界面。放大图片的显示,缩小图片的显示,旋转图片的显示,删除当前图片图片

31、全屏的显示和自动浏览图片的显示均将显示在图片浏览界面。而各种模式下的图片浏览界面下,均可以通过功能菜单对其他浏览模式进行选择。 图3.12 电子相册结构设计4 算法设计和实现4.1 记事本主要算法设计和实现4.1.1 记事本类结构设计图4.1 记事本类图4.1.2 记事本功能实现记事本界面用到的控件主要有QLabel、QToolButton、QTextEdit等。(1)记事本文件列表的实现:首先扫描文件夹下的所有文件,包括隐藏的所有文件名,过滤记事本文件,并将这些记事本文件名根据创建时间的先后进行排序存储到文件链表中,将文件链表中的所有文件显示在文件列表界面。流程图如图17。(2)功能菜单的实

32、现:在记事本设计中有3个功能菜单界面,其中打开和新建的功能菜单均继承自记事本文件列表界面的功能菜单,这三个界面都含有一个QListBox控件,但是菜单项不同,并根据不同的菜单项实现不同的功能。流程图如图18。(3)新建文件的实现:首先提示输入文件名,并检查文件名的合法性。如果文件名不符合要求,则设置文件名的输入无效,并提示重新输入。如果不输入文件名则提供默认的文件名,进入文本编辑界面,然后按照界面的宽度对文本输入进行限定,到界面宽度最大值时自动换行。并且使文本保存时输入到物理设备上时支持unicode编码。流程图如图19。(4)打开文件功能的实现:从文件列表选定打开的文件,然后将文件内容读到QTextStream中再显示在QTextEdit中,并且规定显示格式。如果文件内容被修改后,提示文件是否需要保存。如果通过菜单选择打开下一个文件,则查找到当前文件的

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

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