1,简单介绍
今天,我们来模拟offic软件中的word文档,运行如图:
运行程序后会出现主界面,顶端的菜单栏包括“文件”“编辑”“格式”“窗口”和“帮助五个主菜单。
菜单栏下面是工具栏,包含了系统常用的功能按钮。工具栏有四个工具条,分别将一组相关功能按钮或控件组织在一起 。
工具栏的第一行有三个工具条: 第一个工具条包括新建、打开、保存、打印等文档管理功能,
第二个工具条包括撤销、重做、剪切、复制和粘贴这些最基本的文本编辑功能,
第三个工具条是各种较高级的文字字体格式设置按钮,包括加粗、倾斜、加下画线,还包括段落对齐及文本颜色设置。
在工具栏的第二行的工具条中有三个组合选择框控件,用于为文档添加段落标号和编号,以及选择特殊字体和更改字号。利用该工具条可以完成更复杂的文档排版和字体美化工作。
此外,在图中还给出了使用该软件制作出的二个文档示例。用Qt版MyWord字处理软件制作出的文档统一以HTML格式存盘,可使用Web浏览器打开观看效果。
开发这个软件主要分为如下三个阶段进行。
(1) 界面设计开发
界面设计开发内容包括菜单系统设计、工具栏设计、多窗体MDI程序框架的建立及多个文档子窗口的管理和控制等。
(2) 文本编辑功能实现
文本编辑功能实现主要包括文档的建立、打开和保存,文本的剪切、复制和粘贴,操作撤销与恢复等这些最基本的文档编辑功能。
(3) 排版美化功能实现
排版美化功能实现包括字体选择,字形、字号和文字颜色的设置,文档段落标号和编号的添加,段落对齐方式设置等高级功能实现。
但是今天,我们首先从架构设计分析,先完成他的文档建立,保存等功能,在一步步去实现其他:
2,创建文件
首先我们新建文件,选择:
名字按自己想法来取,后面这里我们先不要ui文件,选择mainwindow:
后面就创建好了
对于各种新建,保存,另存为等功能,我们需要新建一个C++类。
类的名字自己取,基类选择QTextEdit,因为:QTextEdit是Qt中提供的一个用于文本编辑的控件,支持对富文本进行编辑和格式化,可以用于各种应用程序中,如文本编辑器、笔记应用、电子邮件客户端等。
这样我们就创建好了一个mychild的源文件和头文件。
我们说过,我们建立这个类要完成的就是新建,保存等操作,所以我们要定义一些函数和槽函数来实现:
#ifndef MYCHILD_H
#define MYCHILD_H
#include<QTextEdit>
class MyChild : public QTextEdit
{
Q_OBJECT
public:
MyChild();
void NewFile();//新建文件
bool LoadFile(const QString &filename);//导入文件
bool Save();//保存
bool SaveAs();//另存为
bool SaveFile(QString filename);//保存文件
QString userFriendlyCurrentFile();//用户友好型当前文件
QString currentFile(){return curFile;};