多文档编辑器设计与实现 (2)

上传人:wo7****35 文档编号:143939294 上传时间:2020-09-03 格式:DOC 页数:19 大小:145.50KB
返回 下载 相关 举报
多文档编辑器设计与实现 (2)_第1页
第1页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《多文档编辑器设计与实现 (2)》由会员分享,可在线阅读,更多相关《多文档编辑器设计与实现 (2)(19页珍藏版)》请在金锄头文库上搜索。

1、多文档编辑器设计与实现摘 要在深入研究当前各种文本编辑软件优劣的前提上,分析软件开发中程序员的实际需求,发现他们有时候并不需要打开系统庞大、启动较慢的集成开发环境来阅读改写代码,只需要通过小型的文本编辑器即可。然而大多数小型文本编辑器并不能高亮显示代码中的关键字,或者软件本身闭源,不能根据需要改变高亮显示关键字列表,或者软件只有windows版或Linux版移平台植性较差,这并不能满足经常需要在各个软件系统平台之间交叉开发的程序员的需求,甚至影响了他们的工作效率。本系统运用了平台移植性较好的Qt语言来开发,不同平台之间只需要重新编译即可,且代码易读可重用性良好,程序员只需要修改代码中关键字列表

2、或根据需要自定义自己的高亮显示关键字列表即可,这一软件为程序员阅读改写代码提供了便利。关键词:自定义;多文本编辑器;Qt;高亮显示A Study of Forecasting Gas Emission Rate at New District ofCoal Mine with the Initial Velocity MethodAbstract Based on the measurement data of Nanfeng District of Wuyang Coal Mine, Luan Coal Mining Administration, the gas emission fore

3、cast method of the initial velocity with the initial velocity method is introduced, and the application of this method has important practical significance of working out the plan and further prevention and control of mine gas.Key words: initial velocity method; gas emission rate; mine panel(distric

4、t)目录摘 要I1 绪论11.1 现实背景和理论背景11.2 研究目的和意义11.2.1 目的11.2.2 意义12 开发模型的确定22.1 软件工程及其开发模型概述22.1.1 软件工程22.1.2 开发模型概述22.2 确定增量模型33.1 Qt支持的平台:34 多文本编辑器的实现44.1 信号/槽机制44.1.1 信号/槽机制概述44.1.3 信号64.1.4 槽74.1.5 元对象信息84.1.6 一个实际应用的例子84.2 QMdiArea类94.2.1 多文档界面程序94.2.2 QMdiArea类95 特定关键字高亮显示105.1 QSyntaxHighlighter类106 插

5、件加载实现附加功能116.1 插件的实现机制116.2插件的优点116.2.1 插件机制加快运行速度116.2.2 插件机制使软件的后期维护变得简单126.3 编写Qt插件126.3.1 较高级的API126.3.2 较低级的API126.4 Qt插件分类136.4.1 动态加载的插件136.4.2 静态插件13结论14参考文献15致 谢16161 绪论1.1 现实背景和理论背景1.1.1 现实背景虽然目前国内外的多文本编辑器种类已经不胜其数,在实际应用中,根据自己的需求找到一款很顺手的编辑器却不是每个人都能做到的.windows下绝大多数用户不二的选择的microsoft office尽管强

6、大,但它所有的功能并不被人们所一一掌握,程序的庞大对于不需要它额外功能的用户来说,装载如此庞杂的程序到内存并不是必须的,无形中浪费了用户的时间.而Linux下最受欢迎的编辑器非Emacs莫属, 通过加载各种插件它的功能已经不再局限于文本编辑器,完全可以胜任编译与测试方面的工作,深受程序员的青睐.然而作为程序员在实际工作中,有时候并不需要那些诸如编译之类的功能,有时候他们只是需要阅读学习或者稍微改动一些代码.这时候,他们需要的是一个轻便、无需浪费过多内存的多文本编辑器,便于多个程序代码之间参照读写。本课题的实践完成了这一需求,并借助于Qt语言“编码一次,多次部署,多平台运行”的宗旨,成功的实现了

7、一个软件的多平台运行。目前,该文本编辑器支持windows、linux和Android三个平台。1.2 研究目的和意义1.2.1 目的满足广大程序员的现实需求,实现一个可以多平台运行、自定义高亮显示方案的轻便多文本编辑器1.2.2 意义 在实践中,努力贯彻软件工程的思想,体会软件工程带给研发工作的高效性。培养自己自主学习的能力,尝试独立完成项目,并总结经验,积累成长。2 开发模型的确定2.1 软件工程及其开发模型概述2.1.1 软件工程该软件的开发完全应用软件工程的思想-将工程化应用于软件来提高软件开发的效率。目前,业界对于软件工程这一概念有一下观点:1软件工程遵循创立与使用健全的工程原则,以

8、便经济地获得可靠且高效率的软件。2软件工程需应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。3软件工程是与开发、管理及更新软件产品有关的理论、方法及工具。4软件工程一种知识或学科,目标是生产质量良好、准时交货、符合预算,并满足用户所需的软件。5软件工程实际应用科学知识在设计、建构计算机程序,与相伴而来所产生的文件,以及后续的操作和维护上。6软件工程使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。7软件工程是建造由工程师团队所开发之大型软件系统有关的知识学科。8软件工程是对软件分析、设计、实施及维护的一种系统

9、化方法。9软件工程是以系统化地应用工具和技术于开发以计算机为主的应用。10软件工程是关于设计和开发优质软件。2.1.2 开发模型概述软件工程中,常用的开发模型有四种:瀑布模型、原型模型、增量模型和螺旋模型。瀑布模型包括计划,需求分析、设计、编码、测试、运行维护六个阶段,阶段自上而下,相互衔接,次序固定。瀑布模型具有很强的顺序性和依赖性,即:下一阶段必须以上一阶段的完成为前提。测试工作是在处于开发后期的测试阶段集中进行的,测试中可能发现大量的错误,因此必须返回需求分析、设计或编著码中定位问题,而以前认为已完成的各阶段必须修改,从而代价昂贵。 原型模型的主要思想是先通过需求分析并建立一个软件系统的

10、概貌原型,通过用户与开发者的评价和判断,不断的对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统。开发过程中可能会多次生成更完善的原型,测试人员要对每个原型进行测试,并且在每个原型中投入的工作量及测试目标也将有所不同。增量模型(incremental model)与原型实现模型和其他演化方法一样,本质上是迭代的,但与原型实现不一样的是其强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但提供了为用户服务的功能,并且为用户提供了评估的平台。螺旋型开发模型结合了瀑布模型和原型模型的特点,并且加入了二者所忽略的风险分析。螺旋模型的每个周期都包含制定计划,风险分析

11、、实施工程和评审四个阶段。开发过程每迭代一次,螺旋线就增加一周,软件开发前进一个层次,系统生成一个新版本,软件开发时间与成本又有新投入,最后得到 一个用户满意的软件版本。2.2 确定增量模型基于实际分析后,我认为既然不能一次实现所有的软件框架,那么把需求分解,一点点的累加实现是可行的,这比较贴近增量模型的概念。于是,我把项目的需求分为多文本编辑器、文本高亮显示、插件加载实现附加功能三大块来逐步累加实现。3 Qt简介Qt是一个多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。 自从1996年

12、早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。 3.1 Qt支持的平台: MS/Windows - 95、98、NT 4.0、ME、和2000 Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台 Macintosh - Mac OS X Embedded - 有帧缓冲(framebuffer)支持的Linux平台。 Qt是最初奇趣科技的一个产品,是一个跨平台C

13、+图形用户界面应用程序开发框架,2012年该公司被,Qt被Digia收购,现由其维护运营。 3.2 Qt的不同发行版本: Qt企业版和Qt专业版: 提供给商业软件开发。它们提供传统商业软件发行版并且提供免费升级和技术支持服务。企业版比专业版多一些扩展模块。 Qt自由版:是Qt仅仅为了开发自由和开放源码软件 提供的Unix/X11版本。在Qt公共许可证和GNU通用公共许可证 下,它是免费的。Qt/嵌入式自由版:是Qt为了开发自由软件提供的嵌入式版本。在GNU通用公共许可证下,它是免费的。4 多文本编辑器的实现在多文本编辑器的实现中中不得不提的是Qt用于对象间的通讯的信号/槽机制和用来实现多文档界

14、面(Multiple Document Interface)的widget类QMdiArea。4.1 信号/槽机制4.1.1 信号/槽机制概述信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。 在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一个窗口部件。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。例如,如果我们正在解析一个XML文件,当我们遇到一个新的标签时,我们也许希望通知列表视图我们正在用来表达XML文件的结构。 较老的工具包使用一种被称作回调的通讯方式来实现同一目的。回调是指一个函数的指针,所以如果你希望一个处理函数通知你一些事件

15、,你可以把另一个函数(回调)的指针传递给处理函数。处理函数在适当的时候调用回调。回调有两个主要缺点。首先他们不是类型安全的。我们从来都不能确定处理函数使用了正确的参数来调用回调。其次回调和处理函数是非常强有力地联系在一起的,因为处理函数必须知道要调用哪个回调。 在Qt中我们有一种可以替代回调的技术。我们使用信号和槽。当一个特定事件发生的时候,一个信号被发射。Qt的窗口部件有很多预定义的信号,但是我们总是可以通过继承来加入我们自己的信号。槽就是一个可以被调用处理特定信号的函数。Qt的窗口部件又很多预定义的槽,但是通常的习惯是你可以加入自己的槽,这样你就可以处理你所感兴趣的信号。 信号和槽的机制是类型安全的:一个信号的签名必须与它的接收槽的签名相匹配。(实际上一个槽的签名可以比它接收的信号的签名少,因为它可以忽略额外的签名。)因为签名是一致的,编译器就可以帮助我们检测类型不匹配。信号和槽是宽松地联系在一起的:一个发射信号的类不用知道也不用注意哪个槽要接收这个信号。Qt的信号和槽的机制可以保证如果你把一个信号和一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号