




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东理工大学计算机学院嵌入式软件开发 班 级 :计科1403 姓 名 :刘国名 学 号 指导教师 :王涛 二一七 年 六 月三十日任务书及成绩评定1、设计题目:富文本编辑器2、题目的设计内容和要求: 开发一个富文本编辑器,支持常见的文本文件的读写,以及查找功能、表格与图片编辑功能。3、设计任务和要求:3.1 系统结构设计:根据所选题目和所用的方案设计出完整的系统结构图。3.2 程序设计、调试:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释,并在系统上调试通过。3.3 设计说明书:a、本次设计的目的和意义。b、报告:字数约20003000字(不包括程序清单),内容包括:设计题目;系统的主要功能、作用;总体设计方案、工作和组成原理(框图)或设计说明、采用的技术路线等;系统设计:程序设计(程序框图和程序清单及注释)其他有关的理论分析和计算;设计总结:对整个设计工作过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施和对这次设计实践的认识、收获和提高。c、程序的使用或操作说明。 设计内容不允许抄袭和复印,否则取消成绩。4、工作安排:(设计进度及完成情况)l 第一阶段:根据题目要求查阅资料构思设计方案、进行系统结构设计和程序设计以及其它准备工作。l 第二阶段:对第一阶段完成的设计内容进行详细的检查或修改无错后,再进行程序的输入和调试,为便于调试和查错,程序最好采用模块化结构,一部分一部分的调试,通过反复的调试或修改直到达到设计要求为止。l 第三阶段:按照3中的内容和要求撰写设计说明书。日 期内 容2017/6.23根据题目要求查阅资料构思设计方案、进行系统结构设计和程序设计以及进行小组分工准备工作。2017/6.26对第一阶段完成的设计内容进行详细的检查或修改无错后,再进行程序的输入和调试,一部分一部分的调试,通过反复的调试或修改达到设计要求为止。2017/6.28按照3中的内容和要求撰写设计说明书,小组内进行讨论和改正5、 主要参考文献及资料:Qt Creator 快速入门 第3版 作者:霍亚飞 北京航空航天大学出版社Qt 及Qt Quick 开发实战精解 作者:霍亚飞 北京航空航天大学出版社Qt 5 编程入门 作者:霍亚飞 北京航空航天大学出版社 6、成绩评定:评语: 成绩: 指导老师: (签字)二 年 月 日1.系统结构设计:此图为富文本元素此图为文档结构图2.程序设计、调试:3.设计说明书: a.本次设计的目的和意义:富文本简单来说就是在文档中可以使用多种格式,比如字体,图片和表格等,它与纯文本相对而言,比如Windows记事本就是纯文本编辑器,而Word就是富文本编辑器,富文本编辑器相比纯文本编辑器提供了更加丰富的操作。b.报告:设计题目: 富文本编辑器系统的主要功能、作用:在整个系统中,主要功能有支持常见的文本文件的读写,以及查找功能、表格与图片编辑功能。Qt对于富文本的处理分为编辑操作和只读操作两种方式,编辑操作使用基于光标的一些接口函数,更好的模拟了用户的编辑操作,更加容易理解,而且不会丢失底层的文档框架,而对于文档结构的概览,则使用了只读的分层次的接口函数,有利于文档的检索和输出。可见,对于文档的读取和编辑要使用不同的两组接口。系统设计:程序设计(程序框图和程序清单及注释)其他有关的理论分析和计算;文本块:文本块QTextBlock类为文本文档QTextDocument提供了一个文本片段(QTextFragment)的容器。首先在mianwindow。h文件中继续添加私有槽private slots声明:Void showTextBlock();然后再构造函数中继续添加代码:QAction * action_textBlock = new QAction(tr(“文本块”),this);Connect(action_textBlock,&QAction:triggered,this,&MainWindow:showTextBlock);Ui-mainToolBar-addAction(action_textBlock);使用QTextDocument类的firstBlock()函数来获取文档的第一个文本块,而blockCount()函数可以获取文档中所有文本块的个数,这样便可以使用循环语句来遍历所有文本块。这里使用了QTextDocument类的firstBlock()函数来获取文档的第一个文本块,而blockCount()函数可以获取文档中所有文本块的个数,这样便可以使用循环语句来遍历所有文本块。每一个文本块都输入了编号,第一行行号,长度和内容,然后使用QTextBlock的next()函数来获取下一个文本块。这里需要说明的是,tr()函数中使用“”等位置标记,然后在后面使用arg()添加变量作为参数,这样这些参数就会代替前面字符串中的“”显示出来。字符串中有几个“”号,后面就应该有几个arg()与其对应。arg()是QString类中的函数,因为tr()函数返回QString类对象,所以这里可以这样使用。现在运行这些程序,然后在编辑器中添加一些内容,按下“文本块”动作查看效果。可以看到,行号是从0开始标记的,而且如果不使用回车换行,那么它即便在编辑器中显示在了第二行,其实还是在一个文本块里。文本块的长度是从1开始计算的,就是说,就算什么都不写,那么文本块的长度也是1,所以长度会比实际字符数多1。表格、列表和图片:在mainwindow.h文件中添加私有槽private slots声明:Void insertTable(); /插入表格Void insertList(); /插入列表Void insertImage(); /插入图片Void MainWindow:insertTable(); /插入表格QTextCursor cursor = ui -textEdit-textCursor();QTextTableFormat format; /表格格式Format.setCellSpacing(2); /表格外边白Format.setCellPadding(10); /表格内变白Cursor.insertTable(2,2,format); /插入2行2列表格对于表格和列表,也可以使用QTextFrame:iterator来遍历他们,可以在帮助中通过Rich Text Dcoument Structure关键字查看。表格对应的是QTextTable类,该类还提供了collAt()函数用来获取指定的单元格;insertColumns()函数用来插入列;insertRows()函数用来出入行;mergeCells()函数用来合并单元格;splitCell()函数用来拆分单元格。这里先获得了编辑器的光标,然后为其添加了文本块格式和字符格式。文本块格式主要设置对齐方式,缩进等格式,字符格式主要设置字体,颜色,下划线等格式。最后使用光标插入了一个测试文字。查找功能(重点):QTextEdit类提供了很多方便的函数,比如常用的复制,粘贴操作,撤销,恢复操作,放大,缩小操作等。使用只需调用一个函数即可。而查找功能用的就是QTextEdit类的find()函数。首先,需要在前面的程序中添加代码。在mainwindow。h文件中添加类的前置说明:class QLineEdit;Class QDialog;然后,添加私有private对象指针;QLineEdit * lineEdit;QDialog * findDialog;再添加两个私有槽private slots声明;void textfind(); /查找文本Void findNext(); /查找下一个然后,到mainwindow.cpp文件中添加头文件:#include#include#include#include再在构造函数中添加如下代码:QAction * action_textFind = new QAction(tr(“查找”),this);connect(action_textFind,&QAction:triggered,this,&MainWindow:textFind);ui-mainToolBar-addAction(action_textFind);findDialog = new QDialog(this); /创建对话框lineEdit = new QLineEdit(findDialog); /创建行编辑器QPushButton * btn = new QPushButton(findDialog); /创建按钮Btn-setText(tr(“查找下一个”);connect(btn,&QPushButton:clicked,this,&MainWindow:findNext);QVBoxLayout * layout = new QVBoxLayout; /创建垂直布局管理器Layout-addWidget(lineEdit); /添加部件Layout -addWidget(btn);findDialog-setLayout(layout); /在对话框中使用布局管理器在工具栏中添加了“查找”动作,然后创建了查找对话框。下面添加两个槽的定义:void MainWindow:textFind() /查找文本findDailog-show();void MainWindow:findNext() /查找下一个Qstring string = lineEdit-text(); /使用查找函数查找指定字符串,查找方式为向后查找Bool isfind = ui-textEdit-find(string,QTextDocument:FindBackward);If(isfind) /如果查找成功,输出字符串所在行和列的编号qDebug()textEdit-textCursor().blockNumber() .arg(ui-textEdit-textCursor().columNumber(); 这里使用了find()函数进行查找。选项QTextDocument:FindBackward表示向后查找;默认的是向前查找;另外还有QTextDocument:FindCaseSensitively表示不区分大小写,QTextDocument:FindWholeWords表示匹配整个单词。其实,QTextEdit中的find()函数只是为了方便使用而设计的,更多的查找功能可以使用QTextDocument类的find()函数,它有几种形式可以选择,其中还可以使用正则表达式。在查找到相应字符时,这里输入了所在的行号和列号,行号和列号都是从0开始编号的。运行程序查看效果。设计总结:在整个设计工作中,最重要的就是完成好基本的框架,在此基础上进行添加,文档的光标主要基于QtextCursor类,而文档的框架主要基于QtextDocument类,一个富文本文档的结构分为几种元素来表示,分别是框架(QtextFrame),文本块(QTextblock),表格(QTextTable)和列表(QtextList),每种元素的格式又使用相应的format类来表示,分别是框架格式,文本块格式,表格格式,列表格式,这些格式一般在编辑文档时使用,所以常和QtextCursor类配合使用。在整个的系统完成过程中,我们能够基本的完成功能,但是仍然有一些功能需要改进,例如字体的设置功能需要增加。在一些功能模块中,不能更好的提供注释解释,不能更好的优化代码;另外,我们的图形界面不够美观。但是在完成这个例子的过程中,我们仍然有许多的收获,QtCreator 是一个跨平台的、完整的Qt集成开发环境,其中包括了高级C+代码编辑器,项目和生成管理工具,集成上下文相关的帮助系统,图形化调试器,代码管理和浏览工具等,对于Qt Creator软件,我们有了更好的掌握,在这样的高度集成的环境下,给我们的开发提供了很好的便利,促进我们更好地发展。在Qt 中所提供的窗口部件中的基础窗口部件Qwidget,对话框QDialog等都给我们提供了更多的选择。c.程序的使用或操作说明:打开程序界面如下:如图所示,在窗口上方有框架,文本块,字体,表格,列表,图片
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025集团的土地租赁合同样本
- 高速行驶考试题及答案
- 高级咖啡考试题及答案大全
- 钢琴素养课考试题及答案
- 2025和谐联盟商加盟合同
- 佛山物理中考试题及答案
- 法制教育考试题及答案
- 2025人寿保险代理合同
- 2025年奇亚籽胶项目可行性分析与经济测算
- 电源实操考试题及答案
- 2025年抗菌药物合理使用培训考试试题含答案
- 汽车充电桩场地安全使用协议书9篇
- 小学三年级英语教学计划
- 中国铁建股份有限公司招聘笔试题目
- 2023年成都轨道交通集团有限公司招聘笔试题库及答案解析
- 高考语文复习-诗歌专题训练-曾巩诗歌
- GB/T 14486-2008塑料模塑件尺寸公差
- 波利亚的数学解题理论及其在初中数与代数应用题教学中的应用
- 广东省推进粤港澳大湾区国际科技创新中心建设重点任务实施方案
- 禾川x3系列伺服说明书
- 菜鸟驿站店面转让协议
评论
0/150
提交评论