基于Qt的EMD桌面系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第1页
基于Qt的EMD桌面系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第2页
基于Qt的EMD桌面系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第3页
基于Qt的EMD桌面系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第4页
基于Qt的EMD桌面系统(程序代码+任务书+说明书+外文翻译+演示文稿)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Qt的EMD桌面系统摘要随着嵌入式技术的不断发展,现代通讯技术的日益成熟、完善,以及新一代通讯标准的出现,现在人们使用具备高级商务功能的智能移动计算设备已成为可能,从而对基于这一类设备的桌面系统也提出了更高的要求。桌面系统的技术热点和发展趋势在于桌面操作系统和办公套件能为家庭、企业、政府及其他领域提供了基础使用环境,而且必须适应、满足实际使用模式的多样性与硬件平台的差异性,诸如移动终端、个人工作站、商务办公、政府协同处理以及国内外硬件平台的差异性,所以桌面操作系统和办公套件是现今时代最具代表性的基础信息化工具软件,同时也是软件、应用、服务的使用基础平台。系统由登录/退出、简单数据库操作、桌面小工具、桌面应用图标管理和操作、系统移植等模块组成。本系统是在以Qt4.7.2的版本为运行平台,以c+为编程语言来开发的,实现了一个简单地桌面系统。关键词:Qt;嵌入式;桌面系统;c+iBasedontheQTEMDdesktopsystemAbstractWiththecontinuousdevelopmentofembeddedtechnology,moderncommunicationtechnologybecomingmorematureandperfect,andtheemergenceofanewgenerationofcommunicationstandard,nowpeopleusehaveadvancedbusinessfunctionofintelligentmobilecomputingdeviceshasbecomepossibletodesktopsystembasedonthiskindofequipmentisalsoputforwardhigherrequirements.Desktophotspotsanddevelopingtrendsoftechnologyliesinitsdesktopoperatingsystemandofficesuiteforfamilies,businesses,governmentsandotherareasprovidethebasistousetheenvironment,andmustadapttoandmeetthediversityofactualusagepatternsandthedifferencesofhardwareplatform,suchasmobileterminal,personalworkstation,businessoffice,thegovernmentcoordinationtreatmentaswellasthehardwareplatformofthedifferencesbetweenbothathomeandabroad,sothedesktopoperatingsystemandofficesuiteisthebasisofthepresentageisthemostrepresentativeinformationtoolsoftware,andsoftware,applicationandserviceplatform.Systembythelogin/exit,simpledatabaseoperations,desktopgadgets,desktopiconmanagementandoperation,systemmodules,etc.ThissystemisinQt4.7.2versionasoperationplatform,basedonc+programminglanguagetodevelopandimplementasimpledesktopsystems.Keywords:Qt;embedded;Desktopsystem;c+ii目录摘要.iAbstract.ii1绪论.11.1课题背景.11.2课题开发意义.31.3本文结构.31.4项目设计原则.42关键技术.52.1关于Qt的相关介绍.52.1.1简介.52.1.2发行版本.52.1.3MFC介绍.62.1.4Qt与MFC比较.62.1.5使用Qt开发的成功案例.82.2关于嵌入式的相关介绍.102.3c+语言的简单介绍.112.4EMD的简单介绍.143总体分析与设计.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交叉编译写好的应用程序.264.5.2复制可执行文件到QPEDIR/bin目录下.264.5.3自定义应用程序的桌面文件(.desktop).264.5.4为应用程序添加图标.264.5.5制作包含应用程序的文件系统映像.27iii4.5.6使用U盘将文件系统映像复制到PC机.274.5.7使用DNW工具将文件系统映像烧写到NandFlash中.27结论.29参考文献.30致谢.31外文原文.32译文.3901绪论1.1课题背景电脑操作系统指的是在计算机上借助硬件运行并完成计算(应用)的软件,在桌面操作系统诞生之前,最有名的操作系统就是DOS,但是DOS的操作界面十分不友好,仅仅是代码而已,为此,微软公司推出了它们的第一个图形界面操作系统-windows1.0,尽管只有256色,但是在当时已经够吸引人了,直到今天macoswindowslinux三国鼎立的局面。操作系统按应用领域来划分,有桌面操作系统、服务器操作系统和嵌入式操作系统3种。桌面操作系统是其中应用最为广泛的系统。桌面操作系统基本上是根据人在键盘和鼠标发出的命令进行工作,对人的动作和反应在时序上的要求并不很严格。从应用环境来看,桌面操作系统面向复杂多变的各类应用。开发界面来看,桌面操作系统给开发人员提供一个“黑箱”,让开发人员通过一系列标准的系统调用来使用操作系统的功能。桌面操作系统相对于嵌入式操作系统来说,显得比较庞大复杂。平常生活中我们如果和朋友提起操作系统,相信大家首选联想的是电脑操作系统,如微软的windowsxp或者windows7操作系统等。操作系统,简称OS是管理电脑硬件与软件资源的程序,那么目前电脑操作系统有哪些呢?1WINDOWS操作系统;2UNIX操作系;3MAC操作系统;4Linux操作系统。Unix系统是1969年在贝尔实验室诞生,最初是在中小型计算机上运用。最早移植到80286微机上的Unix系统,称为Xenix。Xenix系统的特点是短小精干,系统开销小,运行速度快。UNIX为用户提供了一个分时的系统以控制计算机的活动和资源,并且提供一个交互,灵活的操作界。UNIX被设计成为能够同时运行多进程,支持用户之间共享数据。同时,UNIX支持模块化结构,当你安装UNIX操作系统时,你只需要安装你工作需要的部分,例如:UNIX支持许多编程开发工具,但是如果你并不从事开发工作,你只需要安装最少的编译器。用户界面同样支持模块化原则,互不相关的命令能够通过管道相连接用于执行非常复杂的操作。UNIX有很多种,许多公司都有自己的版本,如AT&T、Sun、HP等。MacOS操作系统是美国苹果计算机公司为它的Macintosh计算机设计的操作系统的一代操作系统,该机型于1984年推出,在当时的PC还只是DOS枯燥的字符界面的时候,Mac率先采用了一些我们至今仍为人称道的技术。比如:GUI图形用户界面、多媒体应用、鼠标等,Macintosh计算机在出版、印刷、影视制作和教育等领域有着广泛的应用,MicrosoftWindows至今在很多方面还有Mac的影子,最近苹果公司又发布了目前最先进的个人电脑操作系统MacOSX。Linux是当今电脑界一个耀眼的名字,它是目前全球最大的一个自由免费软件,其本身是一个功能可与Unix和Windows相媲美的操作系统,具有完备的网络功能,它的用法与UNIX非常相似,因此许多用户不再购买昂贵的UNIX,转而投入Linux等免费系统的怀抱。1Linux最初由芬兰人LinusTorvalds开发,其源程序在Internet网上公开发布,由此,引发了全球电脑爱好者的开发热情,许多人下载该源程序并按自己的意愿完善某一方面的功能,再发回网上,Linux也因此被雕琢成为一个全球最稳定的、最有发展前景的操作系统。曾经有人戏言:要是比尔盖茨把Windows的源代码也作同样处理,现在Windows中残留的许多BUG(错误)早已不复存在,因为全世界的电脑爱好者都会成为Windows的义务测试和编程人员。Windows操作系统是一款由美国微软公司开发的窗口化操作系统。采用了GUI图形化操作模式,比起从前的指令操作系统如DOS更为人性化。Windows操作系统是目前世界上使用最广泛的操作系统。据微软执行副总裁茱莉拉森葛林(JulieLarson-Green)透露,微软未来在操作系统或将进行统一化,Windows9开始将不再包含3个版本,即Windows9、WindowsPhone和WindowsRT将合为一体。智能手机、平板电脑的流行,不仅影响了传统计算机的硬件限售,甚至在系统层面,也对桌面系统带来了一些冲击。其中,最大的一个变化,就是桌面系统也逐渐开始免费。而对于用户来说,便宜的操作系统自然比昂贵的更好;而比便宜更好的,则是免费的系统。在对用户使用操作系统软件的需求调研后,最受用户关注的前三位因素分别是:安全性、易操作性、界面友好。操作系统未来的发展将聚焦在以下三个方面:1.比以往更加强大的集成搜索功能;2.更加绚丽的桌面和3D视觉效果;3.系统安全度有很大提升。当然,实现以上的功能,对于操作系统而言,也是要付出一些代价的,这个代价就是需要主频更高的CPU、更大的内存和硬盘空间做支持,以上功能才能得到更好的发挥。另外,在未来几年的发展中,Windows和Linux操作系统功能会更加的相似,Linux桌面操作系统的市场份额将会有更大的突破。在国内,因开发“红旗Linux”国产桌面操作系统而一炮成名的中科红旗公司,已于今年2月10日正式关门。多少次,曾经扬着红旗的小企鹅成了中国开发自主操作系统的希望,而如今,小企鹅只能留下背影,默默地离开。今天,21世纪经济报道发表文章中科红旗解散国产操作系统梦断。报道认为,红旗Linux系统是在盗版和微软垄断的挤压下走到山穷水尽的地步的。但观察者网从另外的渠道得知,有不少业内技术人员认为红旗Linux是个完全依赖国家核高基专款生存的项目,且在商业化运营手段和技术上都问题重重,中科红旗公司的解散主要还是由于其“内功”的致命缺陷。红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行版之一。然而从红旗Linux发行以来,围绕这款操作系统就是非不断。该系统改变了Linux系统开放源代码的特性,改为封闭源代码,主要商业销售渠道是电脑厂商预置。在其发售之初,就有许多评论认为这样的模式在商业上注定是不会成功的。而红旗Linux遭人诟病最多的问题是据说其代码与目前成功的商业Linux系统RedHat(红帽)操作系统有90%相同。中科红旗的商业运营情况不佳,用户数量,支持软件都非常稀少,同时其版本更新方面也问题不断。工信部软件与集成电路促进中心研究员胡昌军表示:商业公司肯定是以商业利益为主。如果说从整个市场(主要为家用PC)占有的份额来讲,全球的Linux份额可能不2足1%,95%或以上可能都是XP等Windows系列,苹果的MacOS也占有一部分。因为它(国产系统)占有市场份额比较小,在国内也一样。当然商业公司就没有意愿去开发相关软件。在对硬件的支持方面,像一些手机、数码相机等产品,也无法和这一操作系统进行连接。国产操作系统也要逊于WindowsXP。中标软件有限公司副总裁乔咏:主要原因也是因为设备厂商没有对Linux操作系统提供很好的支持,就是不会给它专门提供相应的驱动,使得Linux在这方面的支持能力相对较弱。包括优麒麟在内的国产Linux操作系统,在易用性等方面基本具备XP替代能力,但还存在生态环境差等各种问题。2013年末,国产电脑操作系统红旗Linux遭遇“滑铁卢”,中科红旗软件技术有限公司经营发生严重困难,董事会于2013年12月13日决议从即日起解散公司。但国产操作系统的研发并未就此结束,目前国内还有多家公司在从事相关开发运营工作,而在世界范围内,Linux系统的商业化运用也还处于方兴未艾的阶段。中国工程院院士邬贺铨认为,微软停止对WindowsXP技术支持一事,给国产操作系统的发展带来了一个难得的契机,“别以为现在的苹果、谷歌很强大,已经动不了,创新才是永恒的。只要能坚持创新,那么什么时候都有机会。”2014年4月8日起,美国微软公司停止了对WindowsXP操作系统提供服务支持,这引起了社会和广大用户的广泛关注和对信息安全的担忧。工信部对此表示,将继续加大力度,支持Linux的国产操作系统的研发和应用,并希望用户可以使用国产操作系统。1.2课题开发意义中国工程院院士倪光南表示,电脑上的应用程序都是在操作系统的支持之下工作的。举个例子来说,操作系统就好像地基,应用程序就好像地基上的房子,都是通过地基到房子里的。也就是说,只要电脑联网,谁掌控了操作系统,就掌握了这台电脑上所有的操作信息。中国工程院院士倪光南:操作系统厂商很容易取得用户的各种敏感信息,你的身份、账户、通讯录、手机号那么多数据在一起,如果你用大数据分析,我们国家经济社会的这种活动情况其实都可以了解。统计的数字比统计部门的数字还准确、更快。倪光南说,这种担心并不是杞人忧天。棱镜事件的主角斯诺登透露的资料显示,微软公司曾与美国政府合作,帮助美国国家安全局,获得互联网上的加密文件数据。倪光南表示,由于操作系统关系到国家的信息安全,俄罗斯、德国等国家已经推行,在政府部门的电脑中,采用本国的操作系统软件。由于国内电脑用户的不断增加,而国产操作系统是建立在Windows或者Linux的基础二次开发的操作系统。国内暂且还没有独立开发系统的能力。希望我们可以有自己开发的桌面操作系统。本系统的想法也不是很成熟,技术还很欠缺,但我知道还会有很多人在这条路上一直走下去。1.3本文结构具体地讲,各章研究内容如下:第一章,首先介绍了本文研究背景,探讨了研究意义,然后对桌面系统的研究和发展概况进行了简单回顾,本章同时综述了其研究的目的和意义,最后概述了本文的3主要内容。第二章,首先介绍了本课题使用到的主要关键技术,并进行详细分析。第三章,首先对整个项目进行了可行性分析和需求分析,给出了整个框架的结构图,并结合源代码具体分析了技术的实现方法。第四章,重点介绍了该桌面系统的实现与使用方法,并且在后面附上了运行结果的图片。最后是本课题结论、参考的一些文献、致谢信和外文翻译。1.4项目设计原则1.统一设计原则统筹规划和统一设计系统结构。尤其是应用系统建设结构、数据模型结构、数据存储结构以及系统扩展规划等内容,均需从全局出发、从长远的角度考虑。2.先进性原则系统构成必须采用成熟、具有国内先进水平,并符合国际发展趋势的技术、软件产品和设备。保证先进的同时还要保证技术的稳定、安全性。3.高可靠/高安全性原则系统设计和数据架构设计中充分考虑系统的安全和可靠。4.标准化原则系统各项技术遵循国际标准、国家标准、行业和相关规范。5.成熟性原则系统要采用国际主流、成熟的体系架构来构建,实现跨平台的应用。6.适用性原则保护已有资源,急用先行,在满足应用需求的前提下,尽量降低建设成本。7.可扩展性原则尽可能设计的简明,降低各功能模块的耦合度,并充分考虑兼容性。系统能够支持对各种格式数据的存储。42关键技术2.1关于Qt的相关介绍2.1.1简介QtCreator包括项目生成向导、高级的C+代码编辑器、浏览文件及类的工具、集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试前端,集成qmake构建工具等。下面介绍Qt功能和优势:1.QtCreator主要是为了帮助新Qt用户更快速入门并运行项目,还可提高有经验的Qt开发人员的工作效率。2.使用强大的C+代码编辑器可快速编写代码。3.语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。4.使用浏览工具管理源代码。5.集成了领先的版本控制软件,包括Git、Perforce和Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换。6.为Qt跨平台开发人员的需求而量身定制。7.集成了特定于Qt的功能,如信号与槽(Signals&Slots)图示调试器,对Qt类结构可一目了然集成了QtDesigner可视化布局和格式构建器只需单击一下就可生成和运行Qt项目。2.1.2发行版本Qt是一个跨平台的C+图形用户界面库,由挪威TrollTech公司于1995年底出品。Trolltech公司在1994年成立,但是在1992年,成立Trolltech公司的那批程序员就已经开始设计Qt了,Qt的第一个商业版本于1995年推出。2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行:1.Qt商业版:提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服务。2.Qt开源版:仅仅为了开发自由和开放源码软件,提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。2009年3月发布的Qt4.5起,诺基亚为Qt增添开源LGPL授权选择。2009年5月11日起,诺基亚QtSoftware宣布Qt源代码库面向公众开放,Qt开发人员可通过为Qt以及与Qt相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造Qt未来的发展。为了便于这些内容的管理,QtSoftware启用了基于Git和Gitorious5开源项目的Web源代码管理系统。Qt专业版和企业版是Qt的商业版本。2.1.3MFC介绍MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c+类库,主要封装了大部分的windowsAPI函数,vc+是微软公司开发的c/c+的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC+其中一个编译器内核就是gcc。MFC除了是一个类库以外,还是一个框架,你应该试过,在vc+里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还是一个比较好的东西。MFC下创建一个窗口对象分两步,首先创建MFC窗口对象,然后创建对应的Windows窗口。在内存使用上,MFC窗口对象可以在栈或者堆(使用new创建)中创建。具体表述:创建MFC窗口对象。通过定义一个CWnd或其派生类的实例变量或者动态创建一个MFC窗口的实例,前者在栈空间创建一个MFC窗口对象,后者在堆空间创建一个MFC窗口对象。调用相应的窗口创建函数,创建Windows窗口对象。2.1.4Qt与MFC比较Qt和MFC的差异在于其设计的差异。MFC的根本目的是访问包装起来的用C语言写的windows的API。这绝非好的面向对象的设计模式,在很多地方,你必须提供一个包含15个成员的C语言的struct,但是其中只有一个与你所期望的相关,或者必须用旧式的参数来调用你的函数。MFC还有许多让人摸不着头脑的地方,函数名没有任何的连续性。比如,如果你创建了一个graphical类,直到调用了creat()以后该类才会被创建。然而对dialogs,必须要等到OnInitDialog()才能创建这个对象。奇怪的是到了views,创建该类的函数名竟然成了OnInitUpdate(),.你自己创建一个类用他们的方式调用它,你的程序崩溃了。比如说有一个dialog包含CEdit控件,如果没有调用DoModal()你就不能使用GetWindowText()。否则将会莫名其妙的失败。总之,MFC充满了丈二和尚摸不着头脑的事情,并且,这种错误很难调试。(诚然,MFC是为了封装WindowAPI。用MFC比WinowsAPI会简单些,但确实有些函数的调用时机、先后顺序,如果不是用过一段时间,确实可能因此导致问题。)Qt恰恰相反,它的架构明显是经过精心设计的面向对象的。Qt因此在命名,继承,类的组织等方面保持了优秀的一致性。你只需要提供唯一一个方法的参数,仅此一个。在不同的类中调用方式也是有很强的连贯性。返回值也很有逻辑性。所有一切达到了简单和强大的和谐统一。一旦你使用了其中一个类,其他的类也就触类旁通,因为他们是一致的。在Qt中可以利用Edit控件,用C+创建类的方法来创建自己的QLineEdit。永远可以马上访问任何的方法,不管它是显示还是隐藏。在这里没有迷局,6一切都按照你认为的简单的方式来运作。MFC是事件驱动的架构。要执行任何操作,都必须是对特定的消息作出响应。Windows对应用程序发送的信息数以千计,遗憾的是,要分清楚这些分繁芜杂的消息是很困难的,并且关于这方面的文档并不能很好的解决这些问题。Qt的消息机制是建立在SIGNAL()发送和SLOT()接受的基础上的。这个机制是对象间建立联系的核心机制。利用SIGNAL()可以传递任何的参数。他的功能非常的强大。可以直接大传递信号给SLOT(),因此可以清楚的理解要发生的事情。一个类所发送的信号的数量通常非常的小(4或者5),并且文档也非常的齐全。这让你感觉到一切尽在掌握之中。SIGNAL/SLOT机制类似于Java中listener机制,不过这种机制更加轻量级,功能更齐全。MFC无法创建大小动态可变的子窗口,必须重新手动修改代码来改变窗口的位置(这恰好解释了为什么windows里的dialog是不可以改变的)这个问题在软件进行国际化翻译的时候更加严重,因为许多国家表达相同意思需要更长的词汇和句子,必须要对每个语言的版本重新修改自己的软件。在Qt中,任何东西都可以手动的敲出来,因为它很简单:为了得到一个utton,可以这样些button=newPushButton(buttonName,MyParentName);如果想在按下某个按钮以后想调用某断代码的执行,可以这样写:connect(button,SIGNAL(clicked(),qApp,SLOT(action();Qt拥有非常简单而又不失强大的layout机制,以至于不使用它就是在浪费时间了。Qt还提供了一个图形用户工具,QtDesigner,可以用来帮助建立用户界面。可以修改所使用的任何控件的属性。不用将他们放在严格的位置,可以通过layout完美的组织他们。这个工具所产生的代码我们是可以实际上阅读并且可以理解的。生成的代码单独放在一个文件里,在编程的同时,你可以随心所欲的多次重新生成用户界面。QtDesigner可以让你完成许多在MFC中不可能完成的任务,比如用预先填好的生成listview,在每个tab上用不同的view来使用tab控制。用户选择图形开发环境的时候,帮助文档是否周全是左右其选择的重要因素。Visual的开发环境的帮助文档MSDN(这个还要单独掏钱购买)非常的庞大,有10个CDROM光盘。他包罗万象,涵盖广泛。但是难免有泥沙俱下,主题模糊,关键信息不突出的遗憾。其链接设计的也很糟糕,通过链接很难从一个类跳转到其父类或者子类以及相关的类。如果你搜索一个关键字,不管是VisualC+,VisualJ+,VisualBasic,只要包含这些关键字的信息统统的返回来。Qt的文档设计的相当优秀。你可以到上面一睹芳容。Qt的文档完备且详细的覆盖了Qt的方方面面,竟然仅有18M。每一个类和方法都被详尽描述,巨细靡遗,举例充实。通过Trolltech公司提供的链接或者是QtAssistant工具,可以方便的从一个类或者方法跳转到其他的类。文档还包含了一个初学者教程和一些典型应用的例子。同时还提供了FAQ和邮件列表,方便通过Internet或者用户群来查阅。如果你购买了授权,在一天之内你将会得到Trolltech公司的技术支持。实际上,Qt优秀的帮助文档使得寻求外部帮助的机会大大减少。Tolltech公司的一个宗旨是:有如此优秀的Qt产品以及其帮助文档,技术支持是多余的。使用MFC,如果要显示unicode,在编译链接的时候必须用到特殊的参数(和改变可执行文件执行的入口),必须在每个string前面加上T,将char修改成TCHAR,每个字符串处理函数(strcpy(),strdup(),strcat().)都要改变成另外的函数名。更令人恼火的是支持Unicode的软件竟然不能和不支持Unicode的DLL一起工作。当7使用外部DLL来开发的时候,这是个很严重的问题,但是你毫无选择。使用Qt,字符串用QString来处理,其本身是与生俱来的Unicode.不需要改变什么东西。不要在编译/链接时候增添参数,不要修改代码,只需要使用QString就可以了。QSting类功能强大,你可以广泛的使用它,并且不要担心Unicode问题。这使得转换为Unicode非常的方便。QSting提供了转换为char和UTF8的函数。显然,MFC的CString的设计相比于Qt的QString设计有着巨大的不同。CString以char为基础提供了很少的功能。它的优点是当需要char类型的时候,可以直接使用CString类型。乍看起来这个好像是个优点,其实实质上还是有很大的缺陷的,特别是可以直接修改char*而不要更新类。在转变为Unicode的时候这个也碰到很大的麻烦。(CString随编译选项可以是Unicode版)相反,QString在内部以unicode存储string,需要时提供char功能。实际上很少用到char,因为整个Qt的API用文本的方式响应QString参数。QString还附带许多其他的功能,比如自动分享QString的内容。这是一个非常强大的类,你会喜欢在很多地方用它的。使用MFC是可以国际化的,但是需要将每一个字符串放在一个字符串表中,在代码中到处使用LoadString(IDENTIFIET)。然后转化这些资源到DLL中,翻译字符串到所需要的语言,改变图形界面,然后调用程序使用这个DLL。整个过程是如此的繁琐,可谓牵一发而动全身。考虑的事情要面面俱到。使用Qt的时候,只需要将字符串置于函数tr()中,在程序开发中这算是举手之劳。可以直接在代码中改变字符串的参考。QtLinguist,Qt的一个工具,能够提取所有待翻译的string并按照友好的界面显示出来。这个用户界面非常适合翻译,使用字典,显示字符串内容,恰当的unicode显示,快捷方式冲突检测,检测未翻译的字符串,检测字符串修改情况,功能齐全。这个软件可以供没有任何编程经验的翻译者使用。同时该软件在GPL的版权下发布,可以按照你的需求来修改它。翻译以后的文档保存在XML中,适合软件复用的原则。为软件增加一种新的语言版本仅仅是用QtLinguist产生一个新的文件而已。在本次桌面系统开发中注重的是图形化界面的使用,所以使用Qt将会对本设计有很大的帮助。由于在以前的学习中很少接触到MFC的开发,而Qt开发则是学习了有一段时间,因此本设计使用Qt开发设计。2.1.5使用Qt开发的成功案例一些著名的例子如下:3DSlicer,afreeopensourcesoftwareforvisualizationandmedicalimagecomputingAcetoneISO:镜像文件挂载软件;AdobePhotoshopAlbum:一个图像组织应用程序;Arora:一款跨平台的开源网页浏览器;AutodeskMotionBuilder,三维角色动画软件;AutodeskMaya,3D建模和动画软件;Avidemux,aFreeSoftwareprogramdesignedformulti-purposevideoeditingandprocessingAvogadro:高级分子编辑器;B:暴雪公司开发的游戏对战平台8BOUML:一个免费的统一建模语言工具箱Bitcoin:比特币chmcreator:开源的chm开发工具CineFX:一款跨平台、开源、免费、影片剪辑,特效与合成套装CoCoA:asoftwareforcomputationsincommutativealgebraDashExpress,anInternet-enabledpersonalnavigationdeviceDAZStudio,a3Dfigureillustration/animationapplicationDoxygen:API文件产生器EAGLE,toolfordesigningprintedcircuitboards(PCBs)EiskaltDC+,aprogramthatusestheDirectConnectprotocol.Emergent:神经网络模拟器。Asoftwareproductforthesimulationofelectromagneticfieldseva:Linux版QQ聊天软件。FreeCAD,afreeandopensource3D-SolidandgeneralpurposedesignCAD/CAEFreeMat:一个自由开源的数值计算环境和编程语言FullTiltPoker,oneofthemostpopularonlinepokerprograms。Gadu-Gadu:实时通信软件Gambas,AfreedevelopmentenvironmentbasedonaBasicinterpreterGoldenDict:一款开源的字典软件Google地球(GoogleEarth):三维虚拟地图软件。GNS:Cisco网络模拟器。GuitarPro6,atablatureeditor刺猬大作战:一个基于百战天虫的开源游戏。Hydrogen,anadvanceddrummachineImageVis3D,avolumeray-castingapplicationIpe:自由的矢量图形编辑器ISEWebpack,afreewareEDAtoolforWindowsandLinuxdevelopedbyXilinxKadu,aPolishinstantmessengerusingtheGadu-Gaduprotocol。KDELibs:一个许多KDE程序都使用的共享库,如Amarok、K3b、KDevelop、KOffice等。KeePassX,amulti-platformportofKeePass,anopensourcepasswordmanagerforMicrosoftWindowsLaunchy:一个开放源代码的快捷启动器LMMS:一个开放源代码的音乐编辑软件LyX:使用Qt作为界面的LaTeX软件。Mathematica:Linux和Windows版本使用Qt作为GUIMaxwellRender,asoftwarepackagethataidsintheproductionofphotorealisticimagesfromcomputer3DmodeldataMixxx:跨平台的开放源代码DJ混音软件MuseScore,一个WYSIWYG的乐谱编辑器MythTV:开源的数字视频录制软件。9Nuke,anode-basedcompositorPDFedit:自由的PDF编辑器PokerTH,anopensourceTexash

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论