收藏 分销(赏)

基于qt的emd桌面系统本科-学位论文.doc

上传人:精*** 文档编号:2169968 上传时间:2024-05-21 格式:DOC 页数:49 大小:711.50KB
下载 相关 举报
基于qt的emd桌面系统本科-学位论文.doc_第1页
第1页 / 共49页
基于qt的emd桌面系统本科-学位论文.doc_第2页
第2页 / 共49页
基于qt的emd桌面系统本科-学位论文.doc_第3页
第3页 / 共49页
基于qt的emd桌面系统本科-学位论文.doc_第4页
第4页 / 共49页
基于qt的emd桌面系统本科-学位论文.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

1、北京邮电大学毕业设计 北京邮电大学毕业设计(论文)任务书第1页毕业设计(论文)题目:基于Qt的EMD桌面系统毕业设计(论文)要求及原始数据(资料):1综述国内外桌面系统研究现状;2深入了Qt与桌面系统的相关技术就及数据库的基本用法;3实现桌面系统的界面设计和功能设计;4深入分析Qt中关于桌面系统的关键技术与编写语言;5训练检索文献资料和利用文献资料的能力;6训练撰写技术文档与学位论文的能力。 第2页毕业设计(论文)主要内容:1综述桌面系统在实际生活中的应用;2了解Qt与桌面系统的相关技术;3熟悉EMD桌面系统的的开发环境; 4. 深入分析Qt中关于桌面系统的关键技术与编写语言Qt的设计流程;5

2、熟练掌握基于Qt的EMD桌面系统的编写;6实现预想中的登录界面,桌面界面,桌面小工具应用,桌面图标操作,移 植等各个功能。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料):1 张春艳.基于Qt的嵌入式图形用户界面研究与实现,大连海事大学,2008.42442 万长胜,金革等.用Qt进行面向对象软件的设计与开发,核电子学与探测技术,2004,24(3).45503刘艳青,苏桂莲.基于Qt4的图形用户界面程序的设计与实现,现代计算机,2009(3).1201254

3、 薛岭,蒋馥.桌面系统仿真的开发与应用,上海铁道大学学报,1998(5).85895 贾丽娜.基于USB盘的微型Linux桌面系统的设计与实现,西安电子科技大学,2007.33386 董兰芳,刘祥春,陈意云.虚拟桌面系统的实现原理,计算机工程,2001,27(5).144158 7 陈常松,李英成.GIS软件市场战略:开发小型桌面系统,遥感信息,1994(4).54608 Plafke James. Canonical unveils Ubuntu OS for phones doubles as desktop OS. ExtremeT , 2013.1001109 Pamela Ravas

4、io, Sissel Guttormsen Schr. In pursuit of desktop evolution: User problems and practices with modern desktop systems. ACM Trans. Comput.-Hum. Interact, 2004.14214810 Aleksandar Ilic, Leonel Sousa. CHPS: An Environment for Collaborative Execution on Heterogeneous Desktop Systems. IJNC, 2011.118122专业班

5、级软件1005班学生Qq要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期3基于Qt的EMD桌面系统摘 要随着嵌入式技术的不断发展,现代通讯技术的日益成熟、完善,以及新一代通讯标准的出现,现在人们使用具备高级商务功能的智能移动计算设备已成为可能,从而对基于这一类设备的桌面系统也提出了更高的要求。桌面系统的技术热点和发展趋势在于桌面操作系统和办公套件能为家庭、企业、政府及其他领域提供了基础使用环境,而且必须适应、满足实际使用模式的多样性与硬件平台的差异性,诸如移动终端、个人工作站、商务办公、政府协同处理

6、以及国内外硬件平台的差异性,所以桌面操作系统和办公套件是现今时代最具代表性的基础信息化工具软件,同时也是软件、应用、服务的使用基础平台。系统由登录/退出、简单数据库操作、桌面小工具、桌面应用图标管理和操作、系统移植等模块组成。本系统是在以Qt 4.7.2的版本为运行平台,以c+为编程语言来开发的,实现了一个简单地桌面系统。关键词:Qt;嵌入式;桌面系统;c+Based on the QT EMD desktop systemAbstractWith the continuous development of embedded technology, modern communication t

7、echnology becoming more mature and perfect, and the emergence of a new generation of communication standard, now people use have advanced business function of intelligent mobile computing devices has become possible to desktop system based on this kind of equipment is also put forward higher require

8、ments.Desktop hotspots and developing trends of technology lies in its desktop operating system and office suite for families, businesses, governments and other areas provide the basis to use the environment, and must adapt to and meet the diversity of actual usage patterns and the differences of ha

9、rdware platform, such as mobile terminal, personal workstation, business office, the government coordination treatment as well as the hardware platform of the differences between both at home and abroad, so the desktop operating system and office suite is the basis of the present age is the most rep

10、resentative information tool software, and software, application and service platform. System by the login/exit, simple database operations, desktop gadgets, desktop icon management and operation, system modules, etc. This system is in Qt4.7.2 version as operation platform, based on c+ programming l

11、anguage to develop and implement a simple desktop systems.Key words: Qt; embedded; Desktop system; c+目录摘 要iAbstractii1 绪论11.1 课题背景11.2 课题开发意义31.3 本文结构31.4 项目设计原则42 关键技术52.1 关于Qt的相关介绍52.1.1 简介52.1.2 发行版本52.1.3 MFC介绍62.1.4 Qt与MFC比较62.1.5 使用Qt开发的成功案例82.2 关于嵌入式的相关介绍102.3 c+语言的简单介绍112.4 EMD的简单介绍143 总体分析与

12、设计153.1 基于Qt的EMD桌面系统可行性分析153.2 基于Qt的EMD桌面系统需求分析153.3 基于Qt的EMD桌面系统的目标设计163.4 基于Qt的EMD桌面系统总体功能模块设计163.5 基于Qt的EMD桌面系统各功能模块设计164 系统实现174.1 桌面登录/退出模块174.2 简单数据库模块实现184.3 桌面界面设计184.4 桌面小工具模块204.4.1 帮助204.4.2 日历214.4.3 计算器214.4.4 音乐播放器234.4.5 时钟244.4.6 用户信息管理244.4.7 菜单信息管理254.5 桌面系统的EMD模块264.5.1 交叉编译写好的应用程

13、序264.5.2 复制可执行文件到QPEDIR/bin目录下264.5.3 自定义应用程序的桌面文件(.desktop)264.5.4 为应用程序添加图标264.5.5 制作包含应用程序的文件系统映像274.5.6 使用U盘将文件系统映像复制到PC机274.5.7 使用DNW工具将文件系统映像烧写到NandFlash中27结论29参考文献30致谢31外文原文32译文39 iv1 绪论1.1 课题背景电脑操作系统指的是在计算机上借助硬件运行并完成计算(应用)的软件,在桌面操作系统诞生之前,最有名的操作系统就是DOS,但是DOS的操作界面十分不友好,仅仅是代码而已,为此,微软公司推出了它们的第一个

14、图形界面操作系统-windows 1.0,尽管只有256色,但是在当时已经够吸引人了,直到今天mac oswindowslinux三国鼎立的局面。操作系统按应用领域来划分,有桌面操作系统、服务器操作系统和嵌入式操作系统3种。桌面操作系统是其中应用最为广泛的系统。桌面操作系统基本上是根据人在键盘和鼠标发出的命令进行工作,对人的动作和反应在时序上的要求并不很严格。从应用环境来看,桌面操作系统面向复杂多变的各类应用。开发界面来看,桌面操作系统给开发人员提供一个“黑箱”,让开发人员通过一系列标准的系统调用来使用操作系统的功能。桌面操作系统相对于嵌入式操作系统来说,显得比较庞大复杂。平常生活中我们如果和

15、朋友提起操作系统,相信大家首选联想的是电脑操作系统,如微软的windowsxp或者windows7操作系统等。操作系统,简称OS是管理电脑硬件与软件资源的程序,那么目前电脑操作系统有哪些呢?1WINDOWS操作系统;2UNIX操作系;3MAC操作系统;4Linux操作系统。 Unix系统是1969年在贝尔实验室诞生,最初是在中小型计算机上运用。最早移植到80286微机上的Unix系统,称为Xenix。Xenix系统的特点是短小精干,系统开销小,运行速度快。UNIX为用户提供了一个分时的系统以控制计算机的活动和资源,并且提供一个交互,灵活的操作界。UNIX被设计成为能够同时运行多进程,支持用户之

16、间共享数据。同时,UNIX支持模块化结构,当你安装UNIX操作系统时,你只需要安装你工作需要的部分,例如:UNIX支持许多编程开发工具,但是如果你并不从事开发工作,你只需要安装最少的编译器。用户界面同样支持模块化原则,互不相关的命令能够通过管道相连接用于执行非常复杂的操作。UNIX有很多种,许多公司都有自己的版本,如AT&T、Sun、HP等。 MacOS操作系统是美国苹果计算机公司为它的Macintosh计算机设计的操作系统的一代操作系统,该机型于1984年推出,在当时的PC还只是DOS枯燥的字符界面的时候,Mac率先采用了一些我们至今仍为人称道的技术。比如:GUI图形用户界面、多媒体应用、鼠

17、标等,Macintosh计算机在出版、印刷、影视制作和教育等领域有着广泛的应用,MicrosoftWindows至今在很多方面还有Mac的影子,最近苹果公司又发布了目前最先进的个人电脑操作系统MacOSX。Linux是当今电脑界一个耀眼的名字,它是目前全球最大的一个自由免费软件,其本身是一个功能可与Unix和Windows相媲美的操作系统,具有完备的网络功能,它的用法与UNIX非常相似,因此许多用户不再购买昂贵的UNIX,转而投入Linux等免费系统的怀抱。Linux最初由芬兰人LinusTorvalds开发,其源程序在Internet网上公开发布,由此,引发了全球电脑爱好者的开发热情,许多人

18、下载该源程序并按自己的意愿完善某一方面的功能,再发回网上,Linux也因此被雕琢成为一个全球最稳定的、最有发展前景的操作系统。曾经有人戏言:要是比尔盖茨把Windows的源代码也作同样处理,现在Windows中残留的许多BUG(错误)早已不复存在,因为全世界的电脑爱好者都会成为Windows的义务测试和编程人员。Windows操作系统是一款由美国微软公司开发的窗口化操作系统。采用了GUI图形化操作模式,比起从前的指令操作系统如DOS更为人性化。Windows操作系统是目前世界上使用最广泛的操作系统。据微软执行副总裁茱莉拉森葛林(Julie Larson-Green)透露,微软未来在操作系统或将

19、进行统一化,Windows 9开始将不再包含3个版本,即Windows 9、Windows Phone和Windows RT将合为一体。智能手机、平板电脑的流行,不仅影响了传统计算机的硬件限售,甚至在系统层面,也对桌面系统带来了一些冲击。其中,最大的一个变化,就是桌面系统也逐渐开始免费。而对于用户来说,便宜的操作系统自然比昂贵的更好;而比便宜更好的,则是免费的系统。在对用户使用操作系统软件的需求调研后,最受用户关注的前三位因素分别是:安全性、易操作性、界面友好。操作系统未来的发展将聚焦在以下三个方面:1.比以往更加强大的集成搜索功能;2.更加绚丽的桌面和3D视觉效果;3.系统安全度有很大提升。

20、当然,实现以上的功能,对于操作系统而言,也是要付出一些代价的,这个代价就是需要主频更高的CPU、更大的内存和 硬盘空间做支持,以上功能才能得到更好的发挥。另外,在未来几年的发展中,Windows和Linux操作系统功能会更加的相似,Linux桌面操作系统 的市场份额将会有更大的突破。在国内,因开发“红旗Linux”国产桌面操作系统而一炮成名的中科红旗公司,已于今年2月10日正式关门。多少次,曾经扬着红旗的小企鹅成了中国开发自主操作系统的希望,而如今,小企鹅只能留下背影,默默地离开。今天,21世纪经济报道发表文章中科红旗解散 国产操作系统梦断。报道认为,红旗Linux系统是在盗版和微软垄断的挤压

21、下走到山穷水尽的地步的。但观察者网从另外的渠道得知,有不少业内技术人员认为红旗Linux是个完全依赖国家核高基专款生存的项目,且在商业化运营手段和技术上都问题重重,中科红旗公司的解散主要还是由于其“内功”的致命缺陷。红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行版之一。然而从红旗Linux发行以来,围绕这款操作系统就是非不断。该系统改变了Linux系统开放源代码的

22、特性,改为封闭源代码,主要商业销售渠道是电脑厂商预置。在其发售之初,就有许多评论认为这样的模式在商业上注定是不会成功的。而红旗Linux遭人诟病最多的问题是据说其代码与目前成功的商业Linux系统Red Hat(红帽)操作系统有90%相同。中科红旗的商业运营情况不佳,用户数量,支持软件都非常稀少,同时其版本更新方面也问题不断。工信部软件与集成电路促进中心研究员胡昌军表示:商业公司肯定是以商业利益为主。如果说从整个市场(主要为家用PC)占有的份额来讲,全球的Linux份额可能不足1%,95 %或以上可能都是XP等Windows系列,苹果的Mac OS也占有一部分。因为它(国产系统)占有市场份额比

23、较小,在国内也一样。当然商业公司就没有意愿去开发相关软件。在对硬件的支持方面,像一些手机、数码相机等产品,也无法和这一操作系统进行连接。国产操作系统也要逊于Windows XP。中标软件有限公司副总裁乔咏:主要原因也是因为设备厂商没有对Linux操作系统提供很好的支持,就是不会给它专门提供相应的驱动,使得Linux在这方面的支持能力相对较弱。包括优麒麟在内的国产Linux操作系统,在易用性等方面基本具备XP替代能力,但还存在生态环境差等各种问题。2013年末,国产电脑操作系统红旗Linux遭遇“滑铁卢”,中科红旗软件技术有限公司经营发生严重困难,董事会于2013年12月13日决议从即日起解散公

24、司。但国产操作系统的研发并未就此结束,目前国内还有多家公司在从事相关开发运营工作,而在世界范围内,Linux系统的商业化运用也还处于方兴未艾的阶段。中国工程院院士邬贺铨认为,微软停止对Windows XP技术支持一事,给国产操作系统的发展带来了一个难得的契机,“别以为现在的苹果、谷歌很强大,已经动不了,创新才是永恒的。只要能坚持创新,那么什么时候都有机会。”2014年4月8日起,美国微软公司停止了对Windows XP操作系统提供服务支持,这引起了社会和广大用户的广泛关注和对信息安全的担忧。工信部对此表示,将继续加大力度,支持Linux的国产操作系统的研发和应用,并希望用户可以使用国产操作系统

25、。1.2 课题开发意义中国工程院院士倪光南表示,电脑上的应用程序都是在操作系统的支持之下工作的。举个例子来说,操作系统就好像地基,应用程序就好像地基上的房子,都是通过地基到房子里的。也就是说,只要电脑联网,谁掌控了操作系统,就掌握了这台电脑上所有的操作信息。中国工程院院士倪光南:操作系统厂商很容易取得用户的各种敏感信息,你的身份、账户、通讯录、手机号那么多数据在一起,如果你用大数据分析,我们国家经济社会的这种活动情况其实都可以了解。统计的数字比统计部门的数字还准确、更快。倪光南说,这种担心并不是杞人忧天。棱镜事件的主角斯诺登透露的资料显示,微软公司曾与美国政府合作,帮助美国国家安全局,获得互联

26、网上的加密文件数据。倪光南表示,由于操作系统关系到国家的信息安全,俄罗斯、德国等国家已经推行,在政府部门的电脑中,采用本国的操作系统软件。由于国内电脑用户的不断增加,而国产操作系统是建立在Windows或者Linux的基础二次开发的操作系统。国内暂且还没有独立开发系统的能力。希望我们可以有自己开发的桌面操作系统。本系统的想法也不是很成熟,技术还很欠缺,但我知道还会有很多人在这条路上一直走下去。1.3 本文结构具体地讲,各章研究内容如下:第一章,首先介绍了本文研究背景,探讨了研究意义,然后对桌面系统的研究和发展概况进行了简单回顾,本章同时综述了其研究的目的和意义,最后概述了本文的主要内容。第二章

27、,首先介绍了本课题使用到的主要关键技术,并进行详细分析。第三章, 首先对整个项目进行了可行性分析和需求分析,给出了整个框架的结构图,并结合源代码具体分析了技术的实现方法。 第四章,重点介绍了该桌面系统的实现与使用方法,并且在后面附上了运行结果的图片。最后是本课题结论、参考的一些文献、致谢信和外文翻译。1.4 项目设计原则1.统一设计原则 统筹规划和统一设计系统结构。尤其是应用系统建设结构、数据模型结构、数据存储结构以及系统扩展规划等内容,均需从全局出发、从长远的角度考虑。2.先进性原则 系统构成必须采用成熟、具有国内先进水平,并符合国际发展趋势的技术、软件产品和设备。保证先进的同时还要保证技术

28、的稳定、安全性。3.高可靠/高安全性原则 系统设计和数据架构设计中充分考虑系统的安全和可靠。4.标准化原则 系统各项技术遵循国际标准、国家标准、行业和相关规范。5.成熟性原则 系统要采用国际主流、成熟的体系架构来构建,实现跨平台的应用。6.适用性原则 保护已有资源,急用先行,在满足应用需求的前提下,尽量降低建设成本。7.可扩展性原则 尽可能设计的简明,降低各功能模块的耦合度,并充分考虑兼容性。系统能够支持对各种格式数据的存储。2 关键技术2.1 关于Qt的相关介绍 2.1.1 简介Qt Creator 包括项目生成向导、高级的 C+ 代码编辑器、浏览文件及类的工具、集成了 Qt Designe

29、r、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。下面介绍Qt功能和优势:1.QtCreator 主要是为了帮助新 Qt 用户更快速入门并运行项目,还可提高有经验的 Qt 开发人员的工作效率。2.使用强大的 C+ 代码编辑器可快速编写代码。3.语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。4.使用浏览工具管理源代码。5.集成了领先的版本控制软件,包括 Git、Perforce 和 Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件

30、沿用符号在头文件和源文件,或在声明和定义之间切换。6.为 Qt跨平台开发人员的需求而量身定制。7.集成了特定于 Qt 的功能,如信号与槽 (Signals & Slots)图示调试器, 对 Qt 类结构可一目了然集成了 Qt Designer 可视化布局和格式构建器只需单击一下就可生成和运行 Qt 项目。2.1.2 发行版本Qt 是一个跨平台的 C+ 图形用户界面库,由挪威 TrollTech 公司于1995年底出品。Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序员 就已经开始设计 Qt 了,Qt 的第一个商业版本于 1995 年推

31、出。2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行:1.Qt商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。2.Qt开源版:仅仅为了开发自由和开放源码软件, 提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。2009年3月发布的Qt 4.5 起,诺基亚为Qt增添开源LGPL授权选择。2009年5月11日起,诺基亚Qt Software 宣布 Qt源代码库面向公众开放,Qt 开

32、发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统 。Qt专业版和企业版是Qt的商业版本。2.1.3 MFC介绍MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c+类库,主要封装了大部分的windows API函数,vc+是微软公司开发的c/c+的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有

33、时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC+其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,你应该试过,在vc+里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很

34、多缺陷,但还是一个比较好的东西。MFC下创建一个窗口对象分两步,首先创建MFC窗口对象,然后创建对应的Windows窗口。在内存使用上,MFC窗口对象可以在栈或者堆(使用new创建)中创建。具体表述:创建MFC窗口对象。通过定义一个CWnd或其派生类的实例变量或者动态创建一个MFC窗口的实例,前者在栈空间创建一个MFC窗口对象,后者在堆空间创建一个MFC窗口对象。调用相应的窗口创建函数,创建Windows窗口对象。2.1.4 Qt与MFC比较Qt和MFC的差异在于其设计的差异。MFC的根本目的是访问包装起来的用C语言写的windows的API。 这绝非好的面向对象的设计模式,在很多地方,你必须

35、提供一个包含15个成员的C语言的struct,但是其中只有一个与你所期望的相关,或者必须用旧式的参数来调用你的函数。MFC还有许多让人摸不着头脑的地方,函数名没有任何的连续性。比如,如果你创建了一个graphical类,直到调用了creat()以后该类才会被创建。然而对dialogs,必须要等到OnInitDialog()才能创建这个对象。奇怪的是到了views,创建该类的函数名竟然成了OnInitUpdate(),.你自己创建一个类用他们的方式调用它,你的程序崩溃了。比如说有一个dialog包含CEdit控件,如果没有调用DoModal()你就不能使用GetWindowText()。否则将会

36、莫名其妙的失败。总之,MFC充满了丈二和尚摸不着头脑的事情,并且,这种错误很难调试。 (诚然,MFC是为了封装Window API。用MFC比WinowsAPI会简单些,但确实有些函数的调用时机、先后顺序,如果不是用过一段时间,确实可能因此导致问题。) Qt恰恰相反,它的架构明显是经过精心设计的面向对象的。Qt因此在命名,继承,类的组织等方面保持了优秀的一致性。你只需要提供唯一一个方法的参数,仅此一个。在不同的类中调用方式也是有很强的连贯性。返回值也很有逻辑性。所有一切达到了简单和强大的和谐统一。一旦你使用了其中一个类,其他的类也就触类旁通,因为他们是一致的。在Qt中可以利用Edit控件,用C

37、+创建类的方法来创建自己的QLineEdit。永远可以马上访问任何的方法,不管它是显示还是隐藏。在这里没有迷局,一切都按照你认为的简单的方式来运作。 MFC是事件驱动的架构。要执行任何操作,都必须是对特定的消息作出响应。Windows对应用程序发送的信息数以千计,遗憾的是,要分清楚这些分繁芜杂的消息是很困难的,并且关于这方面的文档并不能很好的解决这些问题。Qt的消息机制是建立在SIGNAL()发送和SLOT()接受的基础上的。这个机制是对象间建立联系的核心机制。利用SIGNAL()可以传递任何的参数。他的功能非常的强大。可以直接大传递信号给SLOT(),因此可以清楚的理解要发生的事情。一个类所

38、发送的信号的数量通常非常的小(4或者5),并且文档也非常的齐全。这让你感觉到一切尽在掌握之中。SIGNAL/SLOT机制类似于Java中listener机制,不过这种机制更加轻量级,功能更齐全。 MFC无法创建大小动态可变的子窗口 ,必须重新手动修改代码来改变窗口的位置(这恰好解释了为什么windows里的dialog是不可以改变的)这个问题在软件进行国际化翻译的时候更加严重,因为许多国家表达相同意思需要更长的词汇和句子,必须要对每个语言的版本重新修改自己的软件。 在Qt中,任何东西都可以手动的敲出来,因为它很简单:为了得到一个utton,可以这样些button = new PushButto

39、n( buttonName, MyParentName );如果想在按下某个按钮以后想调用某断代码的执行,可以这样写:connect( button, SIGNAL( clicked() ), qApp, SLOT( action() ) );Qt拥有非常简单而又不失强大的layout机制,以至于不使用它就是在浪费时间了。 Qt还提供了一个图形用户工具,Qt Designer,可以用来帮助建立用户界面。可以修改所使用的任何控件的属性。不用将他们放在严格的位置,可以通过layout完美的组织他们。这个工具所产生的代码我们是可以实际上阅读并且可以理解的。生成的代码单独放在一个文件里,在编程的同时,

40、你可以随心所欲的多次重新生成用户界面。Qt Designer可以让你完成许多在MFC中不可能完成的任务,比如用预先填好的生成listview,在每个tab上用不同的view来使用tab 控制。 用户选择图形开发环境的时候,帮助文档是否周全是左右其选择的重要因素。Visual的开发环境的帮助文档MSDN(这个还要单独掏钱购买)非常的庞大,有10个CDROM光盘。他包罗万象,涵盖广泛。但是难免有泥沙俱下,主题模糊,关键信息不突出的遗憾。其链接设计的也很糟糕,通过链接很难从一个类跳转到其父类或者子类以及相关的类。如果你搜索一个关键字,不管是Visual C+, Visual J+, Visual B

41、asic,只要包含这些关键字的信息统统的返回来。 Qt的文档设计的相当优秀。你可以到上面一睹芳容。Qt的文档完备且详细的覆盖了Qt的方方面面,竟然仅有18M。每一个类和方法都被详尽描述,巨细靡遗,举例充实。通过Trolltech公司提供的链接或者是Qt Assistant工具,可以方便的从一个类或者方法跳转到其他的类。文档还包含了一个初学者教程和一些典型应用的例子。同时还提供了FAQ和邮件列表,方便通过Internet或者用户群来查阅。如果你购买了授权,在一天之内你将会得到Trolltech公司的技术支持。实际上,Qt优秀的帮助文档使得寻求外部帮助的机会大大减少。Tolltech公司的一个宗旨

42、是:有如此优秀的Qt产品以及其帮助文档,技术支持是多余的。 使用MFC,如果要显示unicode,在编译链接的时候必须用到特殊的参数(和改变可执行文件执行的入口),必须在每个string前面加上T,将char修改成TCHAR,每个字符串处理函数(strcpy(), strdup(), strcat(). )都要改变成另外的函数名。更令人恼火的是支持Unicode的软件竟然不能和不支持Unicode的DLL一起工作。当使用外部DLL来开发的时候,这是个很严重的问题,但是你毫无选择。 使用Qt,字符串用QString来处理,其本身是与生俱来的Unicode.不需要改变什么东西。不要在编译/链接时候

43、增添参数,不要修改代码,只需要使用QString就可以了。QSting类功能强大,你可以广泛的使用它,并且不要担心Unicode问题。这使得转换为Unicode非常的方便。QSting提供了转换为char 和UTF8的函数。显然,MFC的CString的设计相比于Qt的QString设计有着巨大的不同。CString以char 为基础提供了很少的功能。它的优点是当需要char 类型的时候,可以直接使用CString类型。乍看起来这个好像是个优点,其实实质上还是有很大的缺陷的,特别是可以直接修改char * 而不要更新类。在转变为Unicode的时候这个也碰到很大的麻烦。(CString随编译选

44、项可以是Unicode版)相反,QString在内部以unicode存储string,需要时提供char 功能。实际上很少用到char ,因为整个Qt的API用文本的方式响应QString参数。QString还附带许多其他的功能,比如自动分享QString的内容。这是一个非常强大的类,你会喜欢在很多地方用它的。 使用MFC是可以国际化的,但是需要将每一个字符串放在一个字符串表中,在代码中到处使用LoadString(IDENTIFIET)。然后转化这些资源到DLL中,翻译字符串到所需要的语言,改变图形界面,然后调用程序使用这个DLL。整个过程是如此的繁琐,可谓牵一发而动全身。考虑的事情要面面俱

45、到。 使用Qt的时候,只需要将字符串置于函数tr()中,在程序开发中这算是举手之劳。可以直接在代码中改变字符串的参考。Qt Linguist,Qt的一个工具,能够提取所有待翻译的string并按照友好的界面显示出来。这个用户界面非常适合翻译,使用字典,显示字符串内容,恰当的unicode显示,快捷方式冲突检测,检测未翻译的字符串,检测字符串修改情况,功能齐全。这个软件可以供没有任何编程经验的翻译者使用。同时该软件在GPL的版权下发布,可以按照你的需求来修改它。翻译以后的文档保存在XML中,适合软件复用的原则。为软件增加一种新的语言版本仅仅是用Qt Linguist产生一个新的文件而已。 在本次

46、桌面系统开发中注重的是图形化界面的使用,所以使用Qt将会对本设计有很大的帮助。由于在以前的学习中很少接触到MFC的开发,而Qt开发则是学习了有一段时间,因此本设计使用Qt开发设计。2.1.5 使用Qt开发的成功案例一些著名的例子如下:3DSlicer, a free open source software for visualization and medical image computing AcetoneISO:镜像文件挂载软件;Adobe Photoshop Album:一个图像组织应用程序 ;Arora:一款跨平台的开源网页浏览器;Autodesk MotionBuilder, 三维角色动画软件;Autodesk Maya, 3D建模和动画软件;Avidemux, a Free Software program designed for multi-purpose video editingand processing Avogadro:高级分子编辑器;B:暴雪公司开发的游戏对战平台

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服