




已阅读5页,还剩71页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学毕业设计嵌入式HTML编辑器的设计和实现摘要随着编程技术的日益大众化,普遍化,大量的编程语言被更多的人们所掌握,HTML语言作为一种简单易懂的标签语言更是倍受编码爱好者的青睐。编码语言的普及化增高随之带来的是对于编辑器功能的需求提高。一款好的编辑器不仅要实现最基本的功能,将代码语言编译成计算机可识别的机器语言;还需要具有舒适友好的编译环境界面和方便的文本处理功能。这样的编辑器有助于提高编码者的编辑效率还能提高初学者继续学习下去的兴趣。因此,为了更加方便自己的编码,提高自己的编码效率,所以自己设计实现了一款简单的可视化HTML编辑器。编辑器中实现解释标签功能主要是使用了QT中的WebKit技术,在该模块中主要有三个类分别为QWebView、QWebPage和QWebView,它们其中包含的方法就可实现HTML标签的解释功能,并可实现网页的逆解析过程,可视化界面中实现网页的浏览也是利用了这一技术,因此,这一技术是本编辑器使用的核心技术。在搭建可视化编辑器的过程中使用了大量QT中封装的类,其中最大的一个类是管理布局栈类,将水平布局和垂直布局放在其中,这样就可较方便的实现不同的布局相互切换,这样就可根据编程者的个人喜好去改变界面的布局了。本论文中重要介绍了项目的研发背景,所完成的功能和研发过程,重点讲解了主要技术、设计思想、解决方案。 关键词 HTML编辑器; WebKit; 可视化界面; 设计;Embedded HTML editor design and implementationAbstractWith the growing popularity of programming techniques , generalization . a lot of programming languages are more people to grasp , HTML language as an easy -to-understand language is much favored by the encoding lovers. The increased popularity of coded language is edited and brought demand for improved functionality . A good editor not only to achieve the most basic function , the code is edited into machine language recognizable ; It also need to have a comfortable environment -friendly interface and easy to edit text processing functions. Such editors help increase editing efficiency coding beginners who can raise the interest to continue learning forever. Therefore , in order to more easily encode their own to improve their coding efficiency , so their design and implementation of a simple visual HTML editor. Editor achieved mainly explained labels using the QT WebKit technology, the module has three main categories namely QWebView, QWebPage and QWebFrame which contains methods that they can achieve explain the functionality of HTML tags, and to achieve inverse parsing the page, visual interface is also implemented in Web browsers take advantage of this technology, so this technology is the core technology used in the editor. Use the visual editor to build the course in a lot of QT type of package, the largest of which is the management of a class stack class layout, the horizontal and vertical layout in which the layout, so you can achieve more convenient to switch between different layouts this can be based on the personal preferences of the programmer to change the layout of the interface. This paper describes the development of an important project background , function and development process ,done to highlight the main technical , design ideas, solutions.Key words HTMLeditor; WebKit; class; design;ii目录摘要iAbstractii1 引言11.1 研究现状11.2 主要研究的目的及内容11.3 研究方法及设计思路11.3.1 研究方法11.3.2 设计思路12 应用需求分析与可行性分析32.1 应用需求分析32.2 运行需求分析32.3 其他需求分析32.4 可行性分析32.4.1 经济可行性32.4.2 技术可行性42.4.3 运行可行性42.4.4 时间可行性42.4.5 法律可行性42.5 程序开发步骤43 相关技术简介63.1 QT Creator简介63.2 WebKit模块详析63.2.1 QWebView类63.2.2 QWebPage类73.2.3 QWebFrame类73.3 HTML语言介绍84 系统分析94.1 程序中使用的类及成员94.1.1 类名94.1.2 QT中的类名104.1.3 QT函数中的成员函数名及成员变量104.2 基础主控流程图134.3 成员槽函数流程图154.4 类图195 系统设计215.1 概要设计215.2 系统结构设计215.3 详细设计215.3.1 可视化主界面设计215.3.2 可视化菜单设计245.3.3 逻辑代码设计336 系统调试与测试356.1 程序调试356.2 程序的测试356.2.1 测试的重要性及目的356.2.2 测试的步骤366.2.3 测试的主要内容36结束语39参考文献40致谢41外文原文42中文翻译621 引言1.1 研究现状编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近20年中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。现在随着语言的发展,编译器也呈现出井喷式的趋势,整个编译器市场呈现出百家争鸣的态势。其中有些编译器界面设计精美舒适友好,但是功能不够完善;有些编译器功能强大,但操作过于复杂冗余;能作到面面具到的编译器是少之又少;更有些商业编译器还需要付费。因此影响了编程技术的普及广度。因此有许多代码程序员开始自己设计并实现符合自己使用习惯的编译器。这种趋势必将继续发展下去。HTML语言作为一种标签解释类语言在当前发展情况下,很少有专门的编辑器,一般情况下使用记事本工具进行编辑然后保存为html扩展名的文件,再使用浏览器打开才能查看编辑结果。这样就造成了过程操作上的繁琐,导致程序员的工作效率不高,会造成整个项目流程不能顺畅的进行下去。这些都是传统的html编辑过程的弊端。因此,本项目主要就是为了解决传统html的编写过程中编辑界面和展示界面分离的弊端,以提高工作效率。1.2 主要研究的目的及内容本课题的主要目的是使HTML代码的编辑更清晰化,透明化,便于操作,使编辑过程和结果展示处于同一界面之上。通过功能模块的优化组合实现不同的编程细节,使编辑过程实现最大程度的便利,并能自动匹配标签,使编辑代码过程出错率降至最低。使用面向对象的编程理念,将编译器的主窗口封装成类。并将编译器的功能抽象为函数封装于主窗口类中。使用QT Creater工具,调用Qt封装成的函数去实现可视化的编程,并且实现HTML的正向编译、网页内容的逆向编译和编写窗口与展示窗口的布局改变。1.3 研究方法及设计思路1.3.1 研究方法随着编程技术的普及,开发出功能强大、界面友好舒适且操作简单的HTML编辑器就迫在眉睫了。针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个HTML的编辑器。采用QT Creator作为开发工具,基于C+语言并大量使用QT中封装的类及类的成员变量和成员函数,保证了程序运行的效率和编译的正确性。1.3.2 设计思路(1)程序应满足HTML代码的正向解析和逆向解析,可以根据编辑者需求改变编辑框和展示框的布局,满足熟练编程人员和新手的日常编辑需求,并达到操作过程中的直观,方便,实用等要求;(2)系统采用模块化程序设计方法,既便于程序功能的各种组合和修改,又便于以后新功能的加入和程序的升级; (3)程序应具备基本的文本编辑功能; (4)尽量采用代码去完成界面的设计和布局,这样有利于界面控件精细化设计更有利于保存界面的美观与完整性,有益于去改动升级编译器的外观界面。2 应用需求分析与可行性分析改变传统的的HTML编辑过程和展示过程异步的局面,是有效提高HTML语言编辑效率的好方法,并且为程序员提供一个舒服适合自己的编辑界面也是提高程序员编辑效率的方法,因此此编辑器应具备基本的文本编辑器的功能如改变字体大小、类型、颜色,编辑器还需要具有一个特殊功能即展示框浏览器功能,还需要具有界面布局的改变功能。表2-1 开发项目软硬件需求表2.1 应用需求分析程序硬件处理器: Core i5 M 480 2.67GHz 双核笔记本处理器内 存:3 GB (DDR3 1333MHz / DDR3 1333MHz )硬 盘: WDC WD5000BEKT-60KA9T0 ( 500 GB / 7200 转/分 )软件QT Creator 4.8.1Ubuntu 12.04 LTS系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。 硬件系统环境:Core 5600、1G MB(RAM)、120GB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好2.2 运行需求分析硬件条件:酷睿 CPU、512M RAM、20G硬盘以上的PC机。软件条件:ubuntu12.04 qt creator以上2.3 其他需求分析本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。2.4 可行性分析2.4.1 经济可行性经济可行性研究是对组织的经济现状和投资能力进行分析,对程序建设运行和维护费用进行估算,对程序建成后可能取得的社会和经济效益进行估计。由于本程序是作为毕业设计由我自己开发的,在经济上的投入甚微,程序建成之后将为自己和同学编译HTML代码提供很大的方便,估算新程序的开发费用和今后的运行、维护费用,估计新程序将获得的效益,并将费用与效益进行比较,看是否有利。开发、运行和维护费用主要包括: 软件开发费用:由自己开发,则该项费用可以计入下面的人员费用一项;培训费用,饭费,住宿费;消耗品费用:无。所有开支都不大,只需维持自己的生活所需费用,所以经济上是可行的。2.4.2 技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。HTML编译器用的是C+开发语言,使用QT creator编译环境编译,调试也相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于C+语言是相对底层的面向对象的编程语言,且保留有指针这种特殊类型,它们速度快、编写简单、容量大、可靠性能高、价格低,完全能满足系统的需求。2.4.3 运行可行性对新编译器运行后给现行编译器带来的影响(包括编程习惯、编程效率、工作环境等)进行估计和评价。同时还应考虑现有编码者使用、新特性的补充,分析在给定时间里能否完成预定的程序开发任务等。运行可行性是对编程习惯的影响,编程效率和环境对程序的适应性及编码者对程序新特性的了解学习计划的可行性。当前对于已经形成根深蒂固编码习惯的编码者来说改变编码风格有些困难,但有适合自己的新特性产生时也是可以接受的;对于新手来说去适应并形成程序的编码习惯是很容易的,所以在程序的运行上是可行性的。本程序的开发使用QT Creator的编译环境,主要运用其中的WebKit模块技术实现核心的编译过程。2.4.4 时间可行性从时间上看,在实训的的时间里学习了相关知识,并开发了HTML编译器,时间上是有点紧,有些功能不够完善且界面也不够美观,但大体功能已经都实现,通过两个月的设计实现项目基本完成。2.4.5 法律可行性 所有技术资料都为合法。 开发过程中使用的开源开发工具不存在知识产权问题。 未抄袭任何已存在的HTML编译器,不存在侵犯版权问题。 开发过程中,是以开发编译器模型为目的的未涉及任何法律责任。综上所述,本程序的开发从技术上、从经济上、从法律上都是完全可靠的。2.5 程序开发步骤一般说来,这种程序的开发大致可经过概要设计和详细设计两过程。上述各个过程排列成一个严格的线性开发序列,在每个工作过程中均可产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低程序开发的复杂性。国内外许多程序开发的实例都证明这是一种行之有效的开发方式。国外曾有人对一些软件项目开发各阶段的工作量进行了统计,结果表明,在开发过程中各工作阶段所占全部工作量的比重分别达到系统分析:系统设计:编程:模块调试:系统调试20%:15%:20%:25%:20%。由此可见,程序编写在开发工作中只占很小比例,而调试工作却占整个开发工作量的一半左右,因此“系统开发就是编程”的习惯说法显然是片面的。另据统计,在建立管理信息系统的三个阶段中,总体规划和系统开发阶段的工作量约占整个工作量的2/3,而运行、维护阶段要占1/3,这说明一个管理信息系统开发后,仍应十分重视它的维护工作,以便使程序不断完善并充分发挥其作用。3 相关技术简介3.1 QT Creator简介Qt Creator的是一个跨平台的IDE(集成开发环境) ,以量身打造的Qt开发人员的需求。是Qt项目的一部分。先进的代码编辑器Qt Creator的重点是提供功能,可帮助新Qt用户启动和运行速度更快,同时也促进经验丰富的Qt开发人员的生产力。用C + + 、 QML和ECMAScript的支持代码编辑器快速的代码导航工具语法高亮和代码完成在您键入静态代码检测和风格的提示支持源代码重构上下文敏感的帮助代码折叠括号匹配和括号选择模式可视化调试器该可视化调试器的C+是知道许多Qt类的结构,从而提高了其显示Qt的数据清楚地能力。此外, Qt Creator的显示从GDB的清晰和简明的方式的原始信息。中断程序的执行。通过该计划的行由行或指令由指令步骤。设置断点。检查调用栈内容,观察家,以及局部和全局变量。GUI设计师集成的GUI布局和形式建造者为C+项目,它允许您快速设计,并使用通过,将在你的应用程序中使用相同的部件屏幕上的形式建立窗体和对话框。形式是全功能的,并且他们可以立即预览,以确保它们的外观和感觉完全按您预期。3.2 WebKit模块详析QtWebKit的依赖于QtGui。QwebView可以用于打开多个网页,而里面具体的网页对象是QWebPage,QWebPage通过mainframe()方法可以得到。图3-1 WebKit3.2.1 QWebView类QWebView类提供了用于查看和编辑网页的小工具。QWebView是主要部件组成QtWebView的网页浏览模块。它可以用在各种应用程序中显示从因特网获取的网页内容。一个网站可以用load()函数加载到QWebView类中。像所有的Qt widget控件都需要借助show()来显示。并且setUrl()也可以被用于加载一个网站。如果有完善的HTML内容,也可以使用setHtml()来代替。当视图开始加载时,loadstarted()函数会发送一个信号。每当网络视图中的一个元素正在完成加载时,loadProgress()函数就会发送一个信号,如嵌入图像,脚本等。当视图已经完成加载后,loadFinished()会发出一个信号,返回的参数true或false,表示成功与失败。page()函数返回一个指向网页的对象的指针。可以使用QWebSettings类的成员函数settings()去修改web视图的设置。使用QWebSettings类可以修改如JavaScript和插件等的默认字体,启用或禁用功能。一个HTML文件的title属性可以用title()访问对应属性。此外,网站还可以指定一个图标icon属性,icon属性可以使用icon()函数获得。如果title和icon属性发生改变时,函数titlechanged()和titlechanged()会发送对应信号。textSizeMultiplier()可以修改在网页视图中显示的整体文本大小。更多的功能,例如重新加载视图,选定的文本复制到剪贴板,或者粘贴到视图,也封装在内部的QAction类的对象内,这些可以通过pageAction()函数返回到QAction类的对象的。这些操作可以通过使用triggerPageAction()函数去触发,这些操作可以直接添加到工具栏或菜单中去。QWebView类维持着这些操作的返回状态,但是允许操作属性的修改,如文本和图标。一个QWebView类可以通过print()函数打印在QPrinter类中。这个函数被定义为槽函数,并且可以被QPrintPreviewDialog类的paintRequested()函数发送的信号所连接。如果需要提供的网站,允许用户打开新的窗口,如弹出窗口的支持,可以继承QWebView类并且重新实现CreateWindow()函数。3.2.2 QWebPage类QWebPage类提供了一个对象来查看和编辑网页文件。QWebPage有主框架负责网页内容,设置导航的链接和操作的历史。这个类可以和QWebFrame类在一起使用,以提供功能像类QWebView在 a widget-less环境。QWebPage的API与QWebView的 非常相似,例如被提供的常见功能,如action()(QWebView 类的pageAction() 方法)、triggerAction()、findText()和settings()。更多的QWebView类中的函数可以在QWebPage的主框架中,可以通过 mainFrame() 函数找到。例如QWebPage类中的 load()、setUrl()和setHtml()可以使用QWebFrame类去访问。当网页开始加载时 loadStarted() 函数会发出信号。每当网页中的一个元素正在完成加载时,loadProgress()函数就会发送一个信号,如嵌入图像,脚本等。 当网页内容已经完成加载后,loadFinished()会发出一个信号,独立于脚本执行,返回的参数true或false,表示成功与失败。3.2.3 QWebFrame类QWebFrame类表示一个web页面的框架。QWebFrame表示内部网页中的框架,每个QWebPage对象包含至少一个框架,想要获得就使用QWebPage:mainFrame()函数,额外的框架使用 HTML or 元素去构建。一个框架可以使用 load() 或setUrl()去加载,另外,如果有完善的HTML内容,也可以使用setHtml()来代替。page()函数返回一个指向网页对象的指针。该QWebFrame类还提供了方法来检索目前由框架加载的URL( 如url()),以及作为URL最初请求被加载(如requestedUrl()),这些方法使得有可能在URL之前和之后的DNS解析或重定向检索在加载过程中发生。如果加载成功 ,该requestedUrl()也匹配到URL添加到框架历史(QWebHistory)。一个HTML文件的title属性可以用title()访问对应属性。此外,网站还可以指定一个图标icon属性,icon属性可以使用icon()函数获得。如果title和icon属性发生改变时,函数titlechanged()和titlechanged()会发送对应信号。textSizeMultiplier()可以修改在网页视图中显示的整体文本大小QWebFrame对象被创建,并且被网页控制。当一个新的框架被创建,信号就会发给网页的 frameCreated() 函数。有多种方法可以检查一个框架的内容,hitTestContent()函数可以被用来找到坐标元素,documentElement()、findAllElements()、findFirstElement(),可以用来访问底层DOM树。一个QWebFrame类可以通过print()函数打印在QPrinter类中。这个函数被定义为槽函数,并且可以被QPrintPreviewDialog类的paintRequested()函数发送的信号所连接。3.3 HTML语言介绍HTML或超文本标记语言是用来制作网页的标准标记语言。HTML是写在HTML元素组成的尖括号标记(如 )的形式。 HTML标签最常用来像和对,虽然有些标签代表空元素,所以是不成对的,例如 。在一对的第一个标签是开始标签,第二个标签是结束标记(他们也被称为开放标签和结束标签) 。web浏览器的目的是读取HTML文档和它们组合成可见的或可听的网页。浏览器不显示HTML标记,而是使用标签来解释页面的内容。 HTML描述了网站的结构语义以及线索呈现,使之成为一种标记语言,而不是一种编程语言。HTML元素形成的所有网站的基石。 HTML允许图像和对象将要被嵌入,并且可以用于创建交互式表单。它提供了表示为文字,如标题,段落,列表,链接,报价和其他物品的结构语义来创建结构化文档的方法。它可以嵌入语言编写的(如JavaScript)影响的HTML网页的行为脚本。Web浏览器也可以指层叠样式表(CSS )来定义文本和其他材料的外观和布局。 W3C的,维护者的HTML和CSS的标准,鼓励使用CSS在明确表象的HTML。HTML有很多的版本,下面介绍一下其发展史。HTML 2.0这已作为一个IETF RFC于1995年,由一些浏览器如马赛克得到了支持。HTML 3.2这个版本是第一个W3C建议。它有更广泛的浏览器支持(部分原因是因为有很多更多的浏览器) 。它成为1997年1月的建议。HTML 4.0和HTML 4.011997年12月, W3C发布这个升级为HTML 3.2的建议。它增加了更多的功能和标签并提供了三个版本:过渡性的,严格的,和框架。这是更新到4.01 1999年12月有一些变化的规范。XHTML 1.0XHTML 1.0是HTML 4.01的XML的下一个规则的改写,它已作为一项建议是由W3C于2000年1月它有更严格的语法,并要求所有的XHTML是有效的,良好的,以正确显示。大多数Web浏览器呈现XHTML 1.0文档相同的,因为它们呈现HTML 4.01文档。HTML5HTML5开始被开发在2004年,当W3C的HTML工作组决定合并的HTML和XHTML树做的HTML纯粹的基于XML的语言。这让设计师和谁想要一个更灵活的解决方案与选择放弃或创建自己的新规范的浏览器厂商。他们创造了一种称为Web超文本应用技术工作组或WHATWG新组。 HTML5在2008年成为一个W3C工作草案。4 系统分析4.1 程序中使用的类及成员4.1.1 类名Previewer(实体类)MainWindow(主窗口类)以下为主要类中使用的方法名:Application类中的方法(无成员变量)int exec()进入主事件循环等待退出函数发送信号Previewer类中的方法(无成员变量)public Previewer()构造函数参数及初值:QWidget *parent = 0public void on_previewButton_clicked()点击编译按钮发生的事件函数(槽函数)MainWindow类中的方法及成员变量 public MainWindow()构造函数(无参) private void open()打开文件函数(槽函数) private void openUrl()打开地址输入栏函数(槽函数) private void about()打开程序介绍窗口函数(槽函数) private void save()保存编辑好的文本内容函数(槽函数) private void updateTextEdit()显示解释后网页内容的函数(槽函数) private void createActions()创建事件函数即成员变量赋值函数 private void createMenus() 创建菜单事件函数 private void setStartupText()文本框初始化文本函数 private Previewer *centralWidget编辑器类的指针对象 private QMenu *fileMenu文件菜单指针 private QMenu *helpMenu帮助菜单指针 private QAction *openAct打开文件事件指针 private QAction *openUrlAct打开网址事件指针 private QAction *saveAct保存文本事件指针 private QAction *exitAct退出事件指针 private QAction *aboutAct关于帮助事件指针 private QAction *aboutQtAct关于QT帮助事件指针以下为槽函数的名称:Previewer类中具有以下一个槽函数public void on_previewButton_clicked()点击解释按钮发生事件函数MainWindow类中具有以下若干槽函数private void open()打开文件函数private void openUrl()打开地址输入栏函数private void about()打开程序介绍窗口函数private void save()保存编辑好的文本内容函数private void updateTextEdit()显示解释后网页内容的函数 4.1.2 QT中的类名QMainWindow(主窗体类)QMenu(菜单类)QAction(活动类)QWidget(窗口事件反应类)QMessgeBox(信息打印类)QMenuBar(菜单列表类)QFileDialog(文件对话类)QFile(文件类)QIODevice(输入输出设备类)QTextStream(文本流类)QInputDialog(输入对话类)QLineEdit(行编译类)QPlainTextEdit(文本编译类)QWebView(网页浏览类)QWebFrame (网页框架类)QApplication(应用程序类)QAbstractTransition(抽象转换类)QObject(实体类)QString(字符串类)QWebPage(网页类)QDialog(对话类)QCoreApplication(核心应用程序类)4.1.3 QT函数中的成员函数名及成员变量QMainWindow类中的方法名(无成员变量)void setCentralWidget()设置主窗口的中心组件QMenuBar *menuBar()创建下拉列表void show()显示图形化界面QMenu类中的方法名(无成员变量)QAction *addAction()下拉列表中添加选项及对应事件QAction *addSeparator()在一个下拉列表中分区域QAction类中的方法名(无成员变量)void setShortcut()设置选项的对应快捷键void setStatusTip()初始化下拉列表中选项键的状态标签QMessgeBox类中的方法名(无成员变量)void about()弹出文本提示框StandardButton information()弹出一个信息提示框enum StandardButton标准按键QMenuBar类中的方法名(无成员变量)QMenu *addMenu()菜单栏中增加选项下拉列表QAction *addSeparator()划分隔线QFileDialog类中的方法名(无成员变量)QString getOpenFileName()打开目录选取所需打开的文件QFile类中的方法名(无成员变量)bool open()打开文件流QIODevice类中的方法名(无成员变量)ReadOlny宏只读WriteOnly宏只写QString errorString()输出错误信息QTextStream类中的方法名(无成员变量)QString readAll()读取所有文件内容QInputDialog类中的方法名(无成员变量)QString getText()得到文本QString getSaveFileName()打开保存目录,保存到所需的目录内QLineEdit类中的方法名(无成员变量)enum EchoMode设置怎样显示输入的文本QPlainTextEdit类中的方法名(无成员变量)void setPlainText()将打开的文件中的内容写入文本输入框void toPlainText()将HTML转换成纯文本QWebView类中的方法名(无成员变量)bool loadFinished()发送网页加载完成的信号void setUrl()清空浏览器并加载新输入的网址QWebPage *page() 返回一个潜在的网页指针void setHtml()将字符串内容编译成HTML语言QApplication类中的方法名(无成员变量) int exec()进入主事件循环等待退出函数发送信号QAbstractTransition类中的方法名(无成员变量)void triggeried()触发器函数QObject类中的方法名(无成员变量)bool connect()将槽函数和对应可视化组件用信号关联起来QString tr()字符串消除歧义,使其统一化QString类中的方法名(无成员变量)bool isEmpty()判断是空QWebPage类中的方法名(无成员变量)QWebFrame *mainFrame()返回网页的框架结构QWebFrame类中的方法名(无成员变量)QString toHtml()将网页逆编译成HTML语言4.2 基础主控流程图图4-1 主控流程图以上是打开文本槽函数的流程图,调用了QFileDialog类,弹出了打开文本对话框4.3 成员槽函数流程图以下流程图为打开文本函数的流程图,弹出打开文件对话框,描述了打开html文本文件的过程。图2 打开函数的流程图 图4-2 打开文件流程图图3 打开文件流程图 图4-4 逆解析流程图图4-3 逆解析流程图以上两个流程图为打开网址函数的流程和逆解析函数的流程。打开网址的过程是弹出网址对话框后进行的操作。图4-5 保存函数的流程图 以上流程图为保存文本函数的流程图,弹出保存文件对话框,描述了保存文本信息的过程。图4-6 主要类的类图4.4 类图以上为本程序中主要使用的类的类图,其中有26个类,其中QT中所有的类的父类是QObject类,其中主要内容是信号和槽、良好的对象属性、有力的事件和事件过滤器、国际化字符设计、定时器为GUI的事件提供毫秒级的支持、优秀的对象树结构、当对象销毁时指针自动设置为0等这些东西。再一个有很多子类的父类就是QWidget类,窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。它俩是其中两个最重要的类。5 系统设计本编译器不仅要求能完成编译功能和逆向编译功能,而且还要界面舒适和友好。因此,对于一个成功的编译器设计,功能模块和界面模块的设计是关键。5.1 概要设计在系统需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标程序的逻辑模型。现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现程序的需求。首先,我们需要描述的是程序的总的体系结构。本编辑器核心就是为了实现HTML标签的解释和逆解析,主要需要实现的功能就是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年四川宜宾市公务服务中心选调事业单位工作人员2人笔试高频难、易错点备考题库带答案详解
- 教师招聘之《小学教师招聘》练习题(一)含完整答案详解(易错题)
- 2025年教师招聘之《幼儿教师招聘》测试卷及答案详解1套
- 2025年梁山县辅警考试练习题库
- 2025年北京银行长沙分行社会招聘考试备考试题及答案解析
- 合肥市女性创业企业融资困境与破局之道:问题剖析与策略探寻
- 教师招聘之《幼儿教师招聘》测试卷带答案详解(黄金题型)
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库及参考答案详解一套
- 创伤关节骨科关于人工关节集采带量工作的自查整改与报告
- 药品科室会议记录范文
- 一例感染性休克患者护理查房汇报
- 电池热管理机组知识
- 《电力行业职业技能标准 农网配电营业工》
- 《戏曲服饰欣赏》课件
- 《公共基础知识》贵州省黔南布依族苗族自治州都匀市2024年事业单位考试统考试题含解析
- 电力营销业务培训课件
- 技术方案评审表
- 人教版九年级数学下册第二十六章反比例函数-作业设计
- 人美小学美术五上《第1课:肖像艺术》课件
- 湘美版五年级上册美术全册教案
- 浙江省通用安装工程预算定额第八册
评论
0/150
提交评论