word编辑器文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式应用实例开发
项目文档
题 目 Qt 编程实现Word 编辑器
姓 名(学号) 吴应超(**********)
姓 名(学号) 杨国平(**********)
专业班级 07计算机科学与技术 1班
指导教师 黄一春
分 院 信息科学与工程分院
完成日期 2011年1月10日
宁波理工学院
目录
前言 ___________________________________________________ 3 1项目需求 ______________________________________________ 4
1.1项目背景___________________________________________________ 4
1.2技术介绍___________________________________________________ 4
1.3开发环境___________________________________________________ 5
1.4功能目标___________________________________________________ 5
1.5功能描述___________________________________________________ 6
1.6整体流程图_________________________________________________ 7 2项目设计 ______________________________________________ 7
2.1模块划分___________________________________________________ 7
2.1.1 菜单栏功能模块_______________________________________________ 7
2.1.2 文本编辑功能模块_____________________________________________ 8
2.1.3 状态栏功能模块_______________________________________________ 8
2.2类图_______________________________________________________ 8
2.3控件应用___________________________________________________ 9
2.4功能实现___________________________________________________ 9
2.5界面设计__________________________________________________ 11 3编码 _________________________________________________ 11 4测试 _________________________________________________ 14 5项目总结 _____________________________________________ 16 6参考文献 _____________________________________________ 16
前言
嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。
嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。
特别是随着消费家电的智能化,嵌入式更显重要。
像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。
Word编辑器,是在嵌入式系统下,运用Qt软件变成实现的一个文本编辑工具。
它的成功模班为Word 2003版本,在本编辑器中,实现文本编辑器新建、打开、保存、剪切等基本功能,在编辑器中实现图片的旋转、打印等功能。
1项目需求
1.1 项目背景
本项目的设计出发点在于,模仿经典的office Word 2003界面与具体功能,在嵌入式的编程软件Qt中初步实现。
Microsoft Word中广为人知,并且大范围使用的版本应属于Word 2003,自从1989年发布了Word 1.0版本后,该系列软件在30多年的发展中,功能已经界面都得到了不断的完善。
Microsoft Word 1.0于1989年发布,运行在Windows 386上。
Word 1.0有一个应用程序级的菜单栏,这是从Mac的顶级菜单栏和显示在Microsoft DOS 程序底部菜单发展形成的。
同时,Word 1.0也包括了心的界面元素:工具栏。
Word 2.0于1992年投放市场,此时,Word用户界面的基本结构已经固定下来,就像当前的Word 2003一样,菜单栏为:文本、编辑、视图、插入、格式、工具、表格、窗口、帮助,下面是“常用”工具栏和“格式”工具栏。
此界面也一直沿用至今。
在Word 6.0 和 Word 95相继发布后,office 97的成功的引入了“命令栏”,一个完全定制的用户界面,创下了当时软件销售的记录。
它标志着一个新的超丰富生产力应用程序时期的开始。
这样Word的界面元素基本完善。
1.2 技术介绍
Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。
它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。
Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。
Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点:
●优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64),Irix, FreeBSD,BSD/OS, SCO, AIX, OS390,QNX 等等。
●面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。
Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。
●丰富的 API
Qt包括多达 250 个以上的 C++ 类,还提供基于模板的 collections,serialization, file, I/Odevice, directory management, date/time 类。
甚至还包括正则表达式的处理功能。
1.支持 2D/3D 图形渲染,支持 OpenGL
2.大量的开发文档
3.XML 支持
4.Webkit 引擎的集成,可以实现本地界面与Web内容的无缝集成1.3 开发环境
Window XP下的Qt平台
1.4 功能目标
在项目中添加资源文件,添加、设置菜单栏,设置布局管理器, 实现文本编辑,实现状态栏显示。
1.5 功能描述
具有文件的新建、打开、关闭、保存、退出、撤销、剪切、复制、粘贴、全选、查找字符、设置字体、设置颜色、版本说明、状态栏显示的功能新建:就是在原有界面的基础上再建立一个新的空白的word编辑界面。
打开:就是将原先保存在电脑里的后缀名为.doc的文件,在现在的界面中显示出来。
关闭:将现在的界面关掉。
关闭前先自动查看已编辑的文档是否已经保存,如果已经保存就直接关闭,如果没有保存就先保存在关闭。
保存:将编辑好的文档以后缀名为.doc的格式保留下来。
退出:离开现在的编辑界面。
撤销:取消已进行的前一步操作
剪切:选择需要裁剪的文档部分,将其裁剪掉,裁剪下来的部分留在剪贴面板中,可以用粘贴的功能将其粘贴出来。
复制:选择需要重复用到的部分,附加到剪贴面板中,可以用粘贴的功能将其粘贴出来。
粘贴:将剪贴面板中最后放入的部分,粘到需要用到的部分。
全选:选中文本框中的全部内容
查找字符:实现对相关字符的查找
设置字体:对文档中的文字进行,大小以及字体的设置
设置颜色:实现对编辑器背景颜色的设置
关于Qt:关于Qt的相关信息。
关于作者:关于作者的相关信息
状态栏显示:分两个标签,第一个显示文本编辑框内光标的位置,随着光标的变化而变化,第二个直接显示制作者相关信息。
1.6 整体流程图
2项目设计
2.1 模块划分
2.1.1菜单栏功能模块
在菜单设置中,添加四个模块:
文件——新建、打开、关闭、保存、退出编辑——剪切、复制、粘贴、全选
工具——查找字符、设置字体、设置颜色帮助——关于Qt、关于作者
2.1.2文本编辑功能模块
在文本编辑框中实现对文本的编辑和修改。
2.1.3状态栏功能模块
显示光标所在的位置。
2.2 类图
2.3 控件应用
2.4 功能实现
新建功能:
打开功能:
关闭功能:
保存功能:
退出功能:
剪切功能:
撤销功能:
复制功能:
粘贴功能:
全选功能:
字体设置:
颜色设置:
2.5 界面设计
编辑器界面由标题栏、菜单栏、工具栏和文本编辑框,以及状态栏五部分组成。
菜单栏部分分:文件、编辑、工具、帮助四部分,包含:新建、打开、关闭、保存、另存为等菜单功能项。
工具栏部分分:新建、打开、保存、撤销、剪切、复制、粘贴等具体功能工具项。
在文本编辑框主体以下,为状态栏位置,显示光标所在位置。
3编码
头文件:
……
protected:
void changeEvent(QEvent *e);
private:
Ui::MainWindow *ui;
QLineEdit *find_lineEdit;
bool isUntitled;//是否是无标题
QString curFile;//当前文件的标题
QDialog *findDlg;
void initConnect();//初始化信号与槽的连接
void IsSave();//提示是否保存文件
bool loadFile(const QString&fileName);//加载文件
bool saveFile(const QString& fileName);//保存文件
private slots:
void doCursorChanged();//
void doNew();//新建文件信号的槽
void doOpen();//打开
void doClose();//关闭
void doSave();//保存
void doSaveAs();//另存为
void doQuit();//退出
void doUndo();//撤销
void doCut();//剪切
void doCopy();
void doPaste();
void doAll();
void doSetFont();
void doSetColor();
void doAbout();
void doFind();
void show_findText();
};
主要功能代码:
……
void MainWindow::doNew()//新建操作,建立一个新的文本文件{
MainWindow *other=new MainWindow;
other->show();//新建一个窗口
}
void MainWindow::IsSave()//在操作时询问是否需要保存文件{
if(ui->textEdit->document()->isModified())//如果文件被更改过,弹出保存对话框
{
int ret= QMessageBox::warning(this,tr("警告"),tr("文档没有保存是否需要保存?")
,QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Save);
if(ret==QMessageBox::Save)//模态对话,直到逢阻塞,如果选择保存文件,则执行保存操作
{
doSave();
}
}
}
……
void MainWindow::doFind()
{
findDlg = new QDialog(this);
findDlg->setWindowTitle(tr("查找"));
find_lineEdit = new QLineEdit(findDlg);
QPushButton *find_Btn = new QPushButton(tr("查找下一个"),findDlg);
QVBoxLayout* layout = new QVBoxLayout(findDlg);
layout->addWidget(find_lineEdit);
layout->addWidget(find_Btn);
findDlg ->show();
//显示对话框
connect(find_Btn,SIGNAL(clicked()),this,SLOT(show_findText()));
//设置“查找下一个”按钮的单击事件和其槽函数的关联
}
void MainWindow::show_findText()
{
QString findText = find_lineEdit->text();
//获取行编辑器中的内容
// ui->textEdit->find(findText,QTextDocument::FindBackward);//向后查找
if(!ui->textEdit->find(findText,QTextDocument::FindBackward))
{
QMessageBox::warning(this,tr("查找"),tr("找不到%1") .arg(findText));
}
else
{
findDlg->close();
}
}
4测试
编辑器窗口界面如图1所示:
图1:初始界面
编辑器菜单功能界面如图2所示:
图2:菜单功能界面编辑器工具栏功能界面如图3所示:
图3 工具栏功能界面
5项目总结
2010年12月,我们正式确定了我们的项目,Qt编程实现Word编辑器,由2人一起完成。
在前期的准备工作中,我们讨论确定了:项目的需求,进行了简单的项目分工。
在需求分析中,我们确定了功能目标:在以Word 2003为模板的基础上,编程实现:新建、打开、关闭、保存等功能。
由杨同学主要负责程序的设计,由吴同学主要负责了界面的设计和窗口的生成。
12月中旬,我们完成了界面的设计,窗口的生成,已经主要功能的程序实现,在1月初,主要由吴同学负责了项目答辩PPT的制作以及初次项目答辩。
1月中旬,在项目的最后答辩前,我们俩共同完成了项目文档的制作,并且由杨同学完成项目的最后答辩环节。
相信我们的项目能在今天画上一个圆满的句号。
6参考文献
[1]Qt的编程技术及应用陈琦,等译。
北京:北京航空航天大学出版社,2003。
[2] qt+creator系列教程百度文库
[3] 1-Linux窗口程序设计-Qt4精彩实例分析陈洁,卢紫毅编著。
北京:清华大学出版社
[4] 王田苗《嵌入式系统设计与实例开发》北京:清华大学出版社,2002
[5]Qt中文论坛/bbs/home.php
[6]C++ GUI Programming with Qt 4 (2nd Edition) 闫锋欣曾泉人等译。
电子工业出版社。