基于qt的嵌入式浏览器的设计与实现_第1页
基于qt的嵌入式浏览器的设计与实现_第2页
基于qt的嵌入式浏览器的设计与实现_第3页
基于qt的嵌入式浏览器的设计与实现_第4页
基于qt的嵌入式浏览器的设计与实现_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)任务书毕业设计(论文)题目嵌入式浏览器设计与实现毕业设计(论文)要求及原始数据(资料)1综述目前嵌入式浏览器产品的发展现状;2深入了解嵌入式浏览器的组成和各部分功能词法分析、语法分析、布局、GUI及软件界面;3熟悉掌握嵌入式浏览器的应用与分析,训练编写程序的能力;4设计并实现嵌入式浏览器的CUI界面;5深入分析嵌入式浏览器的关键技术与编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。毕业设计(论文)主要内容1综述嵌入式浏览器的应用领域;2了解开发嵌入式浏览器的相关技术C和QT;3熟悉嵌入式浏览器CUI基本的开发环境;4设计嵌入式浏览器的界面、控制模块、编辑模块、保存模块,要求实现跳转、前进、后退等功能;5深入分析嵌入式浏览器的关键技术与HTML词法分析器的设计及其应用;6熟练掌握QT开发图形用户界面;7设计与实现嵌入式浏览器的开发与分析。学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。主要参考文献1JOHNGOERZEN著LINUX编程宝典北京电子工业出版社,20002杜为文编著UNIX使用指南北京清华大学出版社,19973潘爱民著COM原理与应用北京清华大学出版社,19994ISAOTAKAHASHI,TOSHIHIKONOGUCHIANEWRESPONSEANDHIGEFFICIENCYCONTROLSTRATEGYOFANMOTORJIEEETRANSONINDAPPL,19861111315DEPENBROCKMDIRECTSELFCONTROLDSC)OFINVERTERFEDMACHINEJIEEETRANSONPE,19981671776MICROSOFTCORPORATIONTHEMICROSOFTINTERNETSECURITYFRAMEWORKTECHNOLOGYFORSECURECOMMUNICATION,ACCESSCONTROL,ANDCOMMERCEMSDNLIBRARY,DECEMBER19987贺莉基于嵌入式系统的浏览器的研究与实现期刊论文电脑知识与技术200918谢新华莫再峰基于CLINUX的嵌入式浏览器构架研究与实现期刊论文现代计算机(专业版)200829谢新华唐四薪基于MINIGUI的嵌入式浏览器研究与设计期刊论文福建电脑200810加拿大JASMINBLANCHETTE,英MARKSUMMERFIELDCGUIQT4编程M2版囝锋欣,曾泉人译北京电子工业出版社,201011英MARKSUMMERFIELDQT高级编程白建平译北京电子工业出版社201112刘云生涂咏秋一种新型嵌入式浏览器解析布局器的实现期刊论文计算机工程与科学2006913余康桦陆以勤吕锦嵌入式环境下GPRS无线上网实现及浏览器开发期刊论文计算机工程20062314MAGGI,G,RODRIGUEZCLARE,AIMPORTPENETRATIONANDTHEPOLITICSOFTRADEPROTECTIONJJOURNALOFINTERNATIONALECONOMICS,20003专业班级软件1015班学生要求设计(论文工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期嵌入式浏览器的设计与实现摘要随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。嵌入式计算机中的应用数量远远超过了各种通用计算机,制造工业,过程控制,通讯,设备,仪器仪表,汽车,船舶,航空,航空航天,军事装备,消费类产品都是嵌入式计算机的应用领域。本文主要论述了嵌入式浏览器开发所涉及到的技术,对HTML词法分析、C编程等做了详细的分析和介绍,并对C嵌入式浏览器的开发进行了介绍,分析了主要的模块的功能和组成,并给出了主要代码。还对典型的嵌入式浏览器进行了分析,包括GZILLA,MOZILLA,THUNDER和ZEN,总结了浏览器设计的技术要点和开发策略。另外,在论文开头,介绍了目前嵌入式浏览器产品的发展现状,嵌入式浏览器的组成和各部份功能说明。HTML词法分析是着重讨论的技术问题,给出了详尽的数据结构,程序流程。嵌入式浏览器的开发,是本论文的重点,分模块进行了分析,提出了需要改进的地方,并给出了改进措施。关键词嵌入式浏览器;HTML词法分析;CDESIGNANDIMPLEMENTATIONOFEMBEDDEDBROWSERABSTRACTWITHTHEDEVELOPMENTOFCOMPUTERTECHNOLOGY,EMBEDDEDSYSTEMHASBECOMEANIMPORTANTPARTOFTHECOMPUTERFIELDEMBEDDEDCOMPUTERFAREXCEEDSAVARIETYOFGENERALPURPOSECOMPUTERSINTHENUMBEROFTHEAPPLICATIONS,MANUFACTURINGINDUSTRY,PROCESSCONTROL,COMMUNICATIONS,EQUIPMENT,INSTRUMENTS,AUTOMOBILES,SHIPS,AVIATION,AEROSPACE,MILITARYEQUIPMENT,ANDCONSUMERPRODUCTSAREALLTHEAPPLICATIONFIELDOFTHEEMBEDDEDCOMPUTERTHISPAPERDISCUSSESTHEDEVELOPMENTOFEMBEDDEDBROWSERINVOLVEDINTECHNOLOGY,LEXICALANALYSISOFHTML,CPROGRAMMING,ANDSODOADETAILEDANALYSISANDPRESENTATION,ANDCEMBEDDEDBROWSERDEVELOPMENTWEREINTRODUCEDTOANALYZETHEMAINFUNCTIONANDCOMPOSITIONOFTHEMODULEANDGIVESTHEMAINCODEALSOTYPICALEMBEDDEDBROWSERANALYZED,INCLUDINGGZILLA,MOZILLA,THUNDERANDZEN,SUMMEDUPTHETECHNICALPOINTSANDTODEVELOPSTRATEGIESBROWSERDESIGNINADDITION,ATTHEBEGINNINGOFTHEPAPER,DESCRIBESTHECURRENTSTATUSOFTHEDEVELOPMENTOFEMBEDDEDBROWSERPRODUCT,EMBEDDEDBROWSERCOMPOSITIONANDFUNCTIONOFEACHPARTOFTHEDESCRIPTIONHTMLLEXICALANALYSISISFOCUSEDONTECHNICALISSUES,GIVESDETAILEDDATASTRUCTURES,PROGRAMFLOWEMBEDDEDBROWSERDEVELOPMENT,ISTHEFOCUSOFTHISPAPER,SUBMODULESWEREANALYZED,ANDAREASFORIMPROVEMENT,ANDGIVESIMPROVEMENTSKEYWORDSEMBEDDEDBROWSERHTMLLEXICALANALYSISC目录摘要IABSTRACTII绪论1一、嵌入式浏览器设计概述2(一)目前嵌入式浏览器产品的发展现状21国内外发展现状22常见嵌入式浏览器23嵌入式浏览器的应用领域3(二)嵌入式浏览器的设计功能3(三)C简介4(四)QT简介4二、嵌入式浏览器分析6(一)总体结构6(二)浏览器总体流程7(三)图形用户界面GUI和排版显示8三、其它浏览器分析9(一)DILLOGZILLA浏览器分析91主函数流程分析92文件的取得93选择合适的解释器104HTML文件的显示115DILLO分析总结12(二)THUNDER浏览器分析12(三)MOZILLA浏览器分析131COM132XML133LAYOUT134ZEN浏览器分析13四、嵌入式浏览器模块功能实现15(一)浏览器主页界面15(二)跳转界面16(三)浏览器编辑界面17(四)保存界面19五、嵌入式浏览器运行测试21(一)浏览器主页界面单元运测试211文件选项测试212查看选项测试223帮助选项测试22(二)跳转界面单元测试23(三)浏览器编辑界面单元测试24(四)保存界面单元测试24(五)集成测试25总结26参考文献27致谢28英文原文29中文翻译37绪论随着计算机、网络技术的迅猛发展,新型的高科技含量的电子产品层出不穷,遍及家电、生产、军事等各个领域。嵌入式系统因其体积小,速度快而受到重视。在掌上电脑、PDA、手机、导航设备、信息家电领域嵌入式系统被广泛采用,这也是近期产品研发的热点。嵌入式浏览器作为重要的嵌入式系统应用软件,是不可或缺的。但目前,嵌入式浏览器产品的市场被少数国外大公司垄断,众多的小型嵌入式浏览器也尚处于发展期,而国内的自主技术的嵌入式浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注嵌入式浏览器技术,开发中国自主知识产权的浏览器产品。嵌入式浏览器CPU能力弱、功耗低,内存等资源可用的十分有限,所需要支持的WEB特性不需要PC版的那么丰富,一般最基本的HTML即可,JAVASCRIPT一般都不需要全部支持。它的功能十分优秀、前途非常广大,本文对它的进行了简单的开发,希望对它有更深的了解,增加自己的开发经验。一、嵌入式浏览器设计概述(一)目前嵌入式浏览器产品的发展现状1国内外发展现状常见的桌面浏览器有微软的INTERNETEXPLORER,网景的NETSCAPE,开放源码的MOZILLA,以及OPERA,MOSAIC,HOTJAVA,字符模式的LYNX等。其中IE,OPERA已有嵌入式版本,以上的大多数浏览器均有跨多平台的版本。这些桌面型浏览器功能参差不齐,但大多能实现基本的浏览功能。其中IE与NETSCAPE对HTML页面的显示效果均堪称完美(对于XML,WML等标准的网页浏览,本文不予讨论)。对立的是,这些浏览器庞大的体积和对机器配置的高要求。这也是桌面浏览器和嵌入式浏览器最大的区别。另外,桌面型浏览器通常是基于通用的操作系统,用于桌面电脑如PC机、MAC机等。而嵌入式浏览器通常基于专用系统。需要指出的是,我们在网上常看到的一些所谓的优秀浏览器,如NETCAPTOR,魔装网神,腾讯,飓风,FANTASIA,金山WPSOFFICE的浏览器等等,均为使用IE内核的浏览器,使用了多页面多线程的方式,降低了系统资源的耗费,方便了浏览,但软件本身没有多少技术可言,可以用DELPHI,VB等工具轻易开发出来(如果不要求完善的功能,只需简单到拖一个IE控件过去就行了),这也体现了微软的COM及ACTIVEX技术的强大。2常见嵌入式浏览器INTERNETEXPLORERFORWINCE,是IE的WINDOWSCE版,这也意味着用户为了使用它,必须选用基于WINCE平台的产品,随着微软势力在掌上终端领域的蔓延,WINCE版的IE必将大行其道。ACCESSNETFRONT,ACCESS是日本的浏览器大厂,占据了大部份的日本浏览器市场,其产品广泛应用于手持设备、机顶盒、游戏机等产品。其新推出的NETFRONTLINUX版本可以免费下载,网址是HTTP/WWWACCESSCOJP/PRODUCT/DEVELOP。经试用,发现NETFRONT浏览效果非常好,对中文的支持和表格的显示效果,甚至超过NETSCAPE46FORLINUX。而且支持键盘操作。可以使用箭头键来选择网址进行跳转。但显然为了简化设计,NETFRONT使用了一定的权宜手段。比如它不支持使用标记来设置字体,也不支持样式表,所有字体的大小是固定的,但一般情况不易发现,不过由于LINUX版本不是商业性版本,无法就此推断其他版本的特性。NETFRONTLINUX版大小为19M,如再加以简化(比如去掉一些图片按钮)可以做的更小。GZILLA,现名DILLO,是基于LINUX,使用JAVA作为GUI平台开发的浏览器,其开发目的也包含嵌入式的应用。是开放源码项目。我们在设计JAVA嵌入式BROWSER时主要参考了该浏览器的界面设计。该浏览器的缺点是不支持表格,布局过于简单,不支持中文,浏览效果比较差,优点是网络功能完善,支持CACHE缓冲,能够支持多种图片格式。网址是HTTP/WWWGZILLACOM。VIEWML,使用FLTK作为GUI平台开发的浏览器,主要面向嵌入式的应用。是开放源码项目。使用C面向对象的设计。因为使用FLTK,所以可以在嵌入式的MICROWINDOW平台运行,该浏览器支持简单的表格,界面还没有做(只有一个主窗口),不支持中文,由于FLTK的BUG比较多,我们在实际编译时经常出错,即使编译通过,也常常是还没运行就COREDUMP了,但曾经由某人编译成功,基本可用,网址是HTTP/WWWGZILLACOM。ZEN,一个并不知名的嵌入式浏览器,但却十分优秀,开放源码项目,不仅支持表格,支持多种图像格式,而且在设计上很有特色,将涉及到GUI平台的部分独立出来,用户可以指定不同的GUI平台运行,内置了对字符,SVGA和JAVA的支持,开发这只需按照相应规范编写该软件的涉及GUI的部份,就可以将其移植到其它GUI平台,而无须对整个软件进行修改。缺点是网络功能比较弱,不支持多线程,另外其必须等到所有图片下载完毕才开始布局,若某文件传输失败则会导致死锁,需用户中断。网址是HTTP/WWWNOCREWORG/SOFTWARE/ZEN/。以上主要介绍了开放源码的嵌入式浏览器,因为其对本项目具有实际的参考价值。3嵌入式浏览器的应用领域嵌入式浏览器主要应用于手持终端和信息家电,例如掌上电脑、3G手机、网络机顶盒、具有网络功能的其它家电,如可上网的电冰箱等,另外,在军事等领域也有一定的应用需求。(二)嵌入式浏览器的设计功能下面简介主要的组成部份,其设计原理后面将进行专门论述。1词法分析主要是针对HTML进行词法分析,该词法分析器实际是通用的,还可用于XML、WML的词法分析,只需替换元素名称即可。HTML词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。2语法分析在大型的浏览器中,语法分析通常是独立的模块,但在嵌入式浏览器中,语法分析通常是与布局混合在一起的,即一边进行语法分析,一边布局,不设立相应的数据结构来存储语法分析的结果。语法分析对布局的算法有直接的指导意义。3布局本文中的布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和界面输出。布局算法的好坏直接关系到界面的输出效果,但布局算法也是要根据GUI所能实现的输出效果来设计的,所以,GUI往往成为系统的瓶颈,如果GUI提供的支持有限,即使有再好的布局算法,也是纸上谈兵,无用武之地。4GUI及软件界面GUI是指图形用户界面,浏览器无疑是一个图形函数库的大需求者,选择好的GUI环境实属不易,为了能够实现专有的功能,浏览器开发者往往还要对基础的GUI库进行包装、改写,甚至写自己的控件。所有这些,是需要有专业的GUI库开发经验的专职人员来完成。GUI的功劳第一在于软件的操作界面,如窗口、菜单、工具条、滚动条等。第二在于主浏览窗体中的图形元素的输出(通常以自画控件的方式)。前者通常直接使用GUI库中的已有控件,编程难度很小,后者主要利用基本的点线函数,编程难度比较大。(三)C简介C这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“CPLUSPLUS”,“CPP”。它是一种使用非常广泛的计算机编程语言。C是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。C由美国ATJAVA_INIT/JAVA初始化的一般方式/A_PREFS_INIT/初始化PREFERENCE,PREFERENCE包括HTTP_PROXY,NO_PROXY,HOME,LINK_COLOR,BG_COLOR,TEXT_COLOR,ALLOW_WHITE_BG,FORCE_MY_COLORS。函数A_PREFS_INIT调用PREF_LOAD分析文件DILLORC,并初始化全局变量。/A_DNS_INIT/初始化DNS模块。此模块具体工作过程请参阅下文/A_URL_INIT/该函数首先初始化全局变量HTTP_PROXY,和NO_PROXY;/A_MIME_INIT/从网络(A_HTTP_GET)或本地A_FILE_GET取得文件后,不同的文件需要不同的方法打开。该函数定义了如下几种打开文件的方法/A_DICACHE_INIT/DICACHE用于图形文件的处理。/A_INTERFACE_INIT/初始化几个有关界面的全局变量/A_DW_IMAGE_INIT/图形信息的初始化(没有分析)/BWA_INTERFACE_NEW_BROWSER_WINDOW/生成一个BROWSERWINDOWBW,初始化用户图形界面。这些代码是基于JAVA开发的。主要的回调函数都是在这里定义/A_BOOKMARKS_INIT/初始化书签功能。这是比较独立的一个模块/JAVA_MAIN/JAVA消息循环/以下为内存释放/A_CACHE_FREEALLA_DICACHE_FREEALLA_HTTP_FREEALLA_DNS_FREEALLA_PREFS_FREEALL2文件的取得当用户发出一个URL请求时,DILLO首先要取得URL所指向的文件;然后根据文件类型,选择相应的解释器。一个URL所指向的文件可能在本地,也可能在网络上。这节将主要介绍DILLO如何从网上取得文件。模块INTERFACE定义了DILLO的图形用户界面。当用户发出一个URL请求时(例如OPEN一个网页),相应的回调函数将调用函数A_NAV_PUSH。模块NAV中的函数主要是维护每一个BW中的URL堆栈BW是BROWSERWINDOW的简写,是浏览器窗口的数据结构。函数A_NAV_PUSH的主要功能是将当前的请求记录到BW中的EXPECTING域BWNAV_EXPECTURLG_STRDUPURLBWNAV_EXPECTTITLENULLBWNAV_EXPECTINGTRUE随后,调用函数NAV_OPEN_URL。该函数首先判断请求是否就在当前页中(如ANCHOR就在当前页中),如果是,则直接跳到当前页中指定位置;如果否,调用函数A_CACHE_OPEN_URL并修改用户界面(状态条和一些BUTTONS)。模块CACHE是DILLO中的关键模块。模块HTTP和模块FILE负责取得文件,模块CACHE负责将取得的各种文件送到不同的解释器;同时模块CACHE负责管理缓冲区,缓冲区中存在的文件不需要再通过网络下载。函数A_CACHE_OPEN_URL首先搜索缓冲区,判断请求的文件数据是否已经存在;如果存在,调用CACHE_PROCESS_QUEUE处理CACHE中的数据;否则,调用A_URL_OPEN从网上取文件。函数A_URL_OPEN的主要功能是调用合适的OPENER,该函数一般调用URL_OPEN。URL_OPEN将调用合适的METHODA_FILE_GET或者A_HTTP_GET。这里只讨论A_HTTP_GET。函数A_HTTP_GET主要是创建一个HTTP连接,发出DNS请求。它首先根据全局变量HTTP_PROXY和NO_PROXY,修改用户URL;然后创建非阻塞SOCKET;最后通过调用A_DNS_LOOKUP发出DNS请求。DILLO中的DNS请求将由多个线程完成。域名解析完成后,回调函数HTTP_DNS_CALLBACK将被调用。它首先发送HTTP请求SENDQUERY;然后接收回答RECEIVEANSWER。发送、接收操作都是通过调用A_IO_SUBMIT实现的。函数A_IO_SUBMIT通过JAVA的支持,实现了阻塞IO操作。当数据被接收到,回调函数A_CACHE_CALLBACK将被调用。函数A_CACHE_CALLBACK主要功能是处理接收到的数据,判断文件是否下载完毕。接收到的数据将由函数CACHE_PROCESS_QUEUE处理。3选择合适的解释器函数CACHE_PROCESS_QUEUE的主要功能是为下载的文件选择一个合适的解释器。该函数首先判断协议头HEADER(根据HTTP协议,BODY前为HEADER)是否下载完毕,如果没有下载完,直接返回。随后,调用函数A_WEB_DISPATCH_BY_TYPE选择解释器。调用此解释器。如果文件下载完毕,通知解释器,并处理相应的CACHE队列。函数A_WEB_DISPATCH_BY_TYPE首先调用A_MIME_SET_VIEWER,该函数根据文件类型选择相应的VIEWER即主函数中A_MIME_INIT初始化的几种打开方式A_GIF_IMAGEA_JPEG_IMAGE和A_HTML_TEXT。对于HTML文件,A_HTML_TEXT将会被调用。A_HTML_TEXT主要生成一个DILLOHTML结构和一个DWPAGE结构。DILLOHTML中有几个比较重要的结构DW指向DWPAGE结构,DWPAGE是DILLO自定义的文档视图。堆栈维护一个堆栈,记录当前正在处理的TAG,用于语法分析。BW记录当前的窗口。然后,函数A_WEB_DISPATCH_BY_TYPE调用A_DW_JAVA_SCROLLER_SET_DW,为DWPAGE(DW)设置边界,为相应的窗口(BW)设置滚动条,并将页面(DW)嵌入到窗口中(BW)。此函数里的操作是基于JAVA的。函数A_HTML_TEXT将会指定HTML文件的解释器为HTML_CALLBACK4HTML文件的显示图31HTML文件的显示图一般HTML文件的显示需要经过词法分析、语法分析和布局LAYOUT,显示等几步。在HTML显示方面,DILLO处理的比较简单。它在语法分析的同时,进行布局。这里有两个概念WORD和LINE。一个WORD相当于一个HTML文件中的一个TAG,若干个WORD形成一个LINE,而若干LINE形成一个PAGE。在语法分析的过程中,发现一个TAG,则生成一个WORD可能还会生成一个WIDGET,如IMG,同时进行布局。当一行布满时,一个新的LINE将会生成。这种处理方式简单,但是具有较大的局限性。DILLO中不支持TABLE标记就是这种局限性的一种体现。HTML_WRITE函数HTML_CALLBACK通过调用HTML_WRITE实现HTML文件的分析、布局。HTML_WRITE是对已经下载完毕、还没有处理的一段数据的处理。HTML_WRITE的主要过程是调用A_DW_PAGE_UPDATE_BEGIN。处理缓冲区中的数据当前字符是空格,而且不在TAG“PRE”中处理空格当前字符是“LINKTEXTTABLEX|TEXTXTABLE_ROWX|TABLE_CELLTABLE_CELLX|TEXTXIMAGEX可见,节点之间不仅有先后次序,还有父子关系,正确的语法分析和良好的布局算法,使得ZEN可以支持表格等复杂元素,格式基本正确。关于使用JAVA来支持超级链接的消息响应,第五章已有详细阐述,其参考对象就是ZEN浏览器。让我们记住作者KONFUCIUS的座右铭吧“THEREWARDOFSTUDYING,LIESINTHESTUDIESTHEMSELVES“四、嵌入式浏览器模块功能实现(一)浏览器主页界面下图所示为嵌入式浏览器的主页界面,在菜单栏中文件选项中实现新建、打印、退出功能;编辑选项中实现全选功能;查看选项实现转到、停止、刷新功能;工具实现保存功能;帮助实现关于(A)、关于QT功能。在界面上点击前进、后退、跳转、清空、刷新等按钮,来实现其功能。如图41所示图41浏览器主页界面关键后台代码VOIDBROWSERMAINWINDOWINITUIQWIDGETCENTRALWIDGETNEWQWIDGETTHISSETCENTRALWIDGETCENTRALWIDGETADDRESSBARNEWADDRESSBARFORMTABWIDGETNEWTABPAGEWIDGETCONNECTUIACTIONNEWPAGE,SIGNALTRIGGERED,TABWIDGET,SLOTSLOTNEWTABCONNECTADDRESSBAR,SIGNALSIGNALGOBACKURL,TABWIDGET,SLOTSLOTBACKCONNECTADDRESSBAR,SIGNALSIGNALGOFORWARDURL,TABWIDGET,SLOTSLOTFORWARDCONNECTADDRESSBAR,SIGNALSIGNALGOTOURLCONSTQURLCONNECTTABWIDGET,SIGNALURLCHANGEDCONSTQURLQVBOXLAYOUTMAINLAYOUTNEWQVBOXLAYOUTMAINLAYOUTADDWIDGETADDRESSBARMAINLAYOUTADDWIDGETTABWIDGETCENTRALWIDGETSETLAYOUTMAINLAYOUT(二)跳转界面下图所示为嵌入式浏览器输入网址进行的跳转界面,在地址输入栏中输入确定的网址,点击跳转按钮,自动跳转所需网址。如图42所示图42跳转界面关键后台代码ADDRESSBARFORMADDRESSBARFORMDELETEUIVOIDADDRESSBARFORMINITUIUILINEEDITURLSETTEXT“HTTP/QTPROJECTORG/“VOIDADDRESSBARFORMCREATECONNECTIONSCONNECTUITOOLBUTTONGOTOURL,SIGNALCLICKED,THIS,SLOTSLOTGOTOURLCONNECTUILINEEDITURL,SIGNALRETURNPRESSED,THIS,SLOTSLOTGOTOURLCONNECTUITOOLBUTTONREFRESHURL,SIGNALCLICKED,THIS,SLOTSLOTGOTOURLCONNECTUITOOLBUTTONCLEARURL,SIGNALCLICKED,THIS,SLOTSLOTCLEARURLCONNECTUITOOLBUTTONFORWARDURL,SIGNALCLICKED,THIS,SIGNALSIGNALGOFORWARDURLCONNECTUITOOLBUTTONBACKURL,SIGNALCLICKED,THIS,SIGNALSIGNALGOBACKURLVOIDADDRESSBARFORMSLOTCLEARURLUILINEEDITURLCLEARSLOTREFRESHURLVOIDADDRESSBARFORMSLOTGOTOURLQSTRINGADDRESSUILINEEDITURLTEXTSIMPLIFIEDIFADDRESSISEMPTYUILINEEDITURLSETTEXTADDRESSEMITSIGNALGOTOURLQURLADDRESSVOIDADDRESSBARFORMSLOTREFRESHURLSLOTGOTOURLVOIDADDRESSBARFORMSLOTADDRESSCHANGEDCONSTQURL(三)浏览器编辑界面下图所示为嵌入式浏览器的编辑工具中的全选界面,点击编辑选项,在其中选取全选按钮,在点击编辑内容。如图43所示图43编辑界面关键后台代码VOIDTABPAGEWIDGETSLOTNEWTABQWEBVIEWVIEWNEWQWEBVIEWVIEWPAGESETFORWARDUNSUPPORTEDCONTENTTRUEVIEWPAGESETLINKDELEGATIONPOLICYQWEBPAGEDELEGATEALLLINKSVIEWPAGEACTIONQWEBPAGESELECTALLCONNECTVIEW,SIGNALLINKCLICKEDCONSTQURL/ADDANDACTIVATETHISNEWTABINTINDEXTHISADDTABVIEW,“WELCOME“THISSETCURRENTINDEXINDEXVIEWLISTAPPENDVIEWVOIDTABPAGEWIDGETSLOTLOADNEWPAGECONSTQURLVIEWLOADURLVOIDTABPAGEWIDGETSLOTBACKQWEBVIEWVIEWQWEBVIEWTHISCURRENTWIDGETVIEWBACKEMITURLCHANGEDVIEWURLVOIDTABPAGEWIDGETSLOTFORWARDQWEBVIEWVIEWQWEBVIEWTHISCURRENTWIDGETVIEWFORWARDEMITURLCHANGEDVIEWURLVOIDTABPAGEWIDGETSLOTTABCHANGEDINTINDEXIFINDEXVIEWLISTLENGTH1RETURN/INDEXISTHENEWTABINDEXQWEBVIEWVIEWVIEWLISTINDEXEMITURLCHANGEDVIEWURLVOIDTABPAGEWIDGETSLOTTABCLOSEDINTINDEXIFINDEXVIEWLISTLENGTH1RETURNTHISREMOVETABINDEXQWEBVIEWVIEWVIEWLISTINDEXVIEWLISTREMOVEATINDEXDELETEVIEWVOIDTABPAGEWIDGETSLOTLINKCLICKEDCONSTQURLVIEWLOADURLEMITURLCHANGEDURLQWEBVIEWTABPAGEWIDGETGETCURRENTWEBVIEWQWEBVIEWVIEWQWEBVIEWTHISCURRENTWIDGETRETURNVIEW(四)保存界面下图所示为嵌入式浏览器的保存界面,点击工具选项,在其中点击保存中的PDF按钮,然后确定文件名和保存地址,最后点击保存按钮。如图44所示图44保存界面关键后台代码VOIDBROWSERMAINWINDOWSLOTSAVETOPDFQSTRINGPDFFILENAMEQFILEDIALOGGETSAVEFILENAMETHIS,TR“SAVEPDFFILE“,“WEB1PDF“,TR“PDFFILEPDF“IFPDFFILENAMEISEMPTYRETURNQAPPLICATIONSETOVERRIDECURSORQCURSORQTWAITCURSORQPRINTERPRINTERPRINTERSETOUTPUTFORMATQPRINTERPDFFORMATPRINTERSETPRINTRANGEQPRINTERALLPAGESPRINTERSETORIENTATIONQPRINTERPORTRAITPRINTERSETPAPERSIZEQPRINTERA4PRINTERSETRESOLUTIONQPRINTERHIGHRESOLUTIONPRINTERSETFULLPAGETRUEPRINTERSETOUTPUTFILENAMEPDFFILENAMEIFTABWIDGETGETCURRENTWEBVIEWTABWIDGETGETCURRENTWEBVIEWPRINTQAPPLICATIONRESTOREOVERRIDECURSORQMESSAGEBOXINFORMATIONTHIS,“INFO“,TR“保存成功“五、嵌入式浏览器运行测试(1)浏览器主页界面单元运测试1文件选项测试新建功能测试当点击文件选项中的新建按钮时,界面会出现新的标签。用户可以在地址框中输入网址,转到自己需要的网页。当程序正常运行时,用户可以看到画面如下图51所示图51新建功能测试图打印功能测试当点击文件选项中的打印按钮后,显示出打印的常规属性,在点击其中的查找打印机按钮,确定后进行打印。当程序正常运行时,用户可以得到想要打印的文件,用户可以看到的画面如下图52所示图52打印功能测试图2查看选项测试转到功能测试选测查看选项时,先在地址框中输入需要转到的网站,再点击转到按钮,用户就可以看到所需的网站。当程序正常运行时,用户可以输入网址,看到画面如下图53所示图53转到功能测试图3帮助选项测试关于QT测试选择帮助选项时,点击关于QT按钮后,会显示出QT的英文介绍。用户可以你了解到一些基本的QT知识。当程序正常运行时,用户可以看到想要了解的知识,用户可以看到的画面如下图54所示图54QT功能测试图(2)跳转界面单元测试用户在地址框中输入网址,点击跳转按钮后,就可以得到自己想要的网页。当程序正常运行时,用户可以得到想要打印的文件,用户可以看到的画面如下图55所示图55跳转功能测试图(3)浏览器编辑界面单元测试选择编辑选项时,在其中选取全选按钮,在点击用户编辑的内容。当程序正常运行时,用户可以得到想要编辑的文件,用户可以看到的画面如下图56所示图56编辑功能测试图(4)保存界面单元测试选择工具选项时,在其中点击保存中的PDF按钮,然后确定文件名和保存地址,最后点击保存按钮。当程序正常运行时,用户可以得到想要的PDF文件,可以看到的画面如下图57所示图57保存功能测试图(5)集成测试把经过单元测试的模块放在一起形成一个子系统并对它进行测试用于检验模块相互间的协调和通信,这里主要是对嵌入式浏览器进行了测试,经检验其功能均得以顺利实现,下图为用户使用嵌入式浏览器界面,如下图58图58集成功能测试图把经过测试的子系统装配成一个完整的系统进行测试,对整个系统的各个功能模块进行了测试,并调试改正其中的设计和编码错误,经过这个环节的操作整个系统的功能基本实现成功运行。总结浏览器的发展依赖于嵌入式软硬件技术和网络通信技术的发展。在过去,嵌入式硬件的发展使得它与网络技术的结合成为可能;在将来,它的发展又会不断减轻硬件限制带给嵌入式浏览器的发展障碍。嵌入式浏览器和嵌入式操作系统的关系是非常密切的,甚至是不可分割的。嵌入式浏览器是嵌入式操作系统中最重要的应用软件,甚至可能成为唯一直接支持的应用软件。其它的应用都可以通过PLUGIN接口或直接用HTML、JAVASCRIPT及其扩展语言来实现。网络通信是嵌入式浏览器所依赖的最关键的技术之一。另外,网络通信技术也带动了智能手机、机顶盒和其它嵌入式网络终端的发展,从而极大的扩展了嵌入式浏览器的应用析工作的总结。本次毕业设计是对嵌入式浏览器一次尝试性开发,来加深对嵌入式浏览器的了解,以掌握更多的知识和技术。通过设计四个主要模块嵌入式浏览器主界面、跳转界面、编辑界面、保存界面,对嵌入式浏览器的运行更加了解。经过三个多月的习和设计开发加上老师同学的帮助,终于完成了我的毕业设计题“嵌入式浏览器的设计与实现”。在整个浏览器开发的过程中,我学到了很多新的知识,以前学过的许多知识点在运用过程中也有了更为深入的分析,在这个过程中也体会到了如何将书本中的知识转化到实际的应用中来。参考文献1BRUCEECKEL美著,JAVA编程思想第3版THINKINGINJAVA,THIRDEDITION,北京机械工业出版社2高成著,JSP动态系统建设,北京国防工业出版社,2002043JEANPAULTREMBLAY等著,面向对象数据结构与软件开发(JAVA版),北京清华大学出版社200534林春梅,“JSP在远程教育资源库开发中的主要技术问题”,计算机应用,2002065罗俊,“用JSP/SERVLET构建的三层式产品开发过程管理系统”,计算机工程,2002046MARKWUTKA美,JSP和SERVLET程序设计使用专辑,北京机械工业出版社200237任艳,“应用JSP进行数据库信息发布”,计算机工程与应用,2002078MAGGI,G,RODRIGUEZCLARE,AIMPORTPENETRATIONANDTHEPOLITICSOFTRADEPROTECTIONJJOURNALOFINTERNATIONALECONOMICS,200039谭淑英著,“服务器端的动态系统开发技术”,计算机应用研究,2002年05期。10肖金秀著,JSP程序设计教程,北京冶金工业出版社,20031011应宏,“基于B/S模式建立信息系统方法的比较分析”,重庆三峡学院学报,20020312殷兆麟著,JAVA在线高级编程,北京清华大学出版社/北京交通大学出版社,2005513杜为文编著UNIX使用指南北京清华大学出版社,199714潘爱民著COM原理与应用北京清华大学出版社,199915MICROSOFTCORPORATIONTHEMICROSOFTINTERNETSECURITYFRAMEWORKTECHNOLOGYFORSECURECOMMUNICATION,ACCESSCONTROL,ANDCOMMERCEMSDNLIBRARY,DECEMBER199816DEPENBROCKMDIRECTSELFCONTROLDSC)OFINVERTERFEDMACHINEJIEEETRANSONPE,1998167177致谢在本课题的研究设计的过程中,得到了许多老师和同学的帮助,借此机会向他们表示诚挚的谢意首先,我要感谢亢海波老师。在课题嵌入式浏览器的设计与实现期间,我受到了亢海波老师很多的讲解、指导。亢老师不仅对我详细讲解了课题的框架结构和实现的功能,还通过邮件对我的错误进行了耐心的指导和纠正。十分感谢亢海波老师在毕业设计过程中给予我的帮助,让我顺利的完成了毕业设计。让我不仅从亢老师那里学到更多的知识和技能在本课题的研究设计的过程中,还有优良品格和严谨的治学态度。在这个过程中,我还要感谢韩腾飞和毛鑫同学的支持,让我得到了许多的帮助,借此机会向老师和同学们表示诚挚的谢意。英文原文RESEARCHANDIMPLEMENTATIONOFEMBEDDEDGRAPHICUSERINTERFACEBASEDONLINUXLIUYIJUN,CHENWENBIN,HEXIAOMANCOMPUTERSCIENCECOLLEGE,SOUTHWESTPETROLEUMUNIVERSITYHEXIAOMAN_2008163COMINTRODUCTIONWITHTHEDEVELOPMENTOFCOMPUTERTECHNOLOGY,EMBEDDEDSYSTEMHASBECOMEANIMPORTANTPARTOFTHECOMPUTERFIELDTHESOCALLEDEMBEDDEDSYSTEM,THATIS,ASPECIALCOMPUTERSYSTEMWITHAPPLICATIONASCENTER,COMPUTERTECHNOLOGYASTHEBASIS,SOFTWAREANDHARDWARECANBETAILOREDTOMEETTHEAPPLICATIONSYSTEMSTRICTREQUIREMENTSFORFUNCTIONALITY,RELIABILITY,COST,SIZE,ANDPOWERCONSUMPTIONEMBEDDEDCOMPUTERFAREXCEEDSAVARIETYOFGENERALPURPOSECOMPUTERSINTHENUMBEROFTHEAPPLICATIONS,MANUFACTURINGINDUSTRY,PROCESSCONTROL,COMMUNICATIONS,EQUIPMENT,INSTRUMENTS,AUTOMOBILES,SHIPS,AVIATION,AEROSPACE,MILITARYEQUIPMENT,ANDCONSUMERPRODUCTSAREALLTHEAPPLICATIONFIELDOFTHEEMBEDDEDCOMPUTERUSERINTERFACEBASEDONEMBEDDEDLINUXAEMBEDDEDOPERATIONSYSTEMEMBEDDEDSYSTEMHASUSERORIENTED,PRODUCTORIENTED,APPLICATIONORIENTEDFEATURESDIFFERENTFROMGENERALPURPOSECOMPUTERS,EMBEDDEDSYSTEMISASPECIALSYSTEMFORSPECIFICAPPLICATIONS,GENERALLYISCOSTSENSITIVE,ANDITSHARDWAREANDSOFTWAREMUSTBEEFFICIENTLYDESIGNED,TAILOREDTOREMOVEREDUNDANCYAGOODEMBEDDEDSYSTEMISTHEMINIMUMSYSTEMTOCOMPLETETHETARGETFUNCTIONSINEMBEDDEDSYSTEMDEVELOPMENT,EMBEDDEDSOFTWAREISTHEKEYTOACHIEVEAVARIETYOFSYSTEMFUNCTIONS,ALSOONEOFTHEMOSTACTIVERESEARCHDIRECTIONSOFCOMPUTERTECHNOLOGYINGENERAL,EMBEDDEDSYSTEMCONSISTSOFHARDWAREANDSOFTWARETWOMAJORCOMPONENTSTHEHARDWAREPARTINCLUDESPROCESSORSMICROPROCESSORS,MEMORY,PERIPHERALDEVICES,I0PORTS,GRAPHICSCONTROLLERANDSOONEMBEDDEDSYSTEMISDIFFERENTFROMTHEGENERALCOMPUTERPROCESSINGSYSTEMS,WHICHDOESNOTHAVEALARGECAPACITYSTORAGEMEDIUMASHARDDRIVEBUTMOSTUSEEPROM,EEPROMORFLASHMEMORYASSTORAGEMEDIUMTHESOFTWAREPARTINCLUDESOPERATINGSYSTEMSOFTWAREWHICHNEEDSREALTIMEANDMULTITASKINGOPERATIONS,ANDTHEAPPLICATIONPROGRAMMINGTHEOPERATINGSYSTEMCONTROLSTHEAPPLICATIONPROGRAMMINGANDHARDWAREINTERACTION,ANDTHEAPPLICATIONCONTROLSTHESYSTEMOPERATIONANDBEHAVIORSBGUIOVERVIEWTHEBROADPOPULARITYISONEOFTHEMAJORACHIEVEMENTSOFCURRENTCOMPUTERTECHNOLOGY,WHICHGREATLYFACILITATESTHEUSEOFNONPROFESSIONALUSERS,ANDPEOPLENOLONGERNEEDSTOCRAMALOTOFCOMMANDSBUTCANE

温馨提示

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

评论

0/150

提交评论