导语
前面已经在主窗口中添加了菜单和工具栏,这一篇中我们将实现基本的文本编辑功能。在开始正式写程序之前,我们先要考虑一下整个流程。因为这里要写一个记事本一样的程序,所以最好先打开Windows中的记事本,进行一些简单的操作,然后考虑怎样去实现这些功能。再者,再强大的软件,它的功能也是一个一个加上去的,不要设想一下子写出所有的功能。我们这里先实现新建文件,保存文件,和文件另存为三个功能,是因为它们联系很紧,而且这三个功能总的代码量也不是很大。
目录
一、实现新建文件、文件保存和另存为功能 二、实现打开、关闭、退出、撤销、复制、剪切、粘贴等功能 正文
一、实现新建文件、文件保存和另存为功能 1.首先来分析下整个流程,当新建文件时,要考虑是否保存正在编辑的文件,如果需要保存,还要根据该文件以前是否保存过来进行保存或者另存为操作。下面我们根据这里的分析来添加需要的函数和对象。 2.打开上一篇完成的项目,然后先在main.cpp文件中添加代码来保证代码中可以使用中文字符。 首先添加#include <QTextCodec>头文件包含,然后在主函数中添加如下代码:QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 3.在mainwindow.h文件中添加public函数声明:
void newFile(); // 新建操作
bool maybeSave(); // 判断是否需要保存
bool save(); // 保存操作
bool saveAs(); // 另存为操作
bool saveFile(const QString &fileName); // 保存文件 这里的几个函数就是用来完成功能逻辑的,下面我们会添加它们的定义来实现相应的功能。因为这几个功能联系紧密,所以这几个函数会相互调用。 4.然后添加private变量定义:
// 为真表示文件没有保存过,为假表示文件已经被保存过了
bool isUntitled;
// 保存当前文件的路径
QString curFile; 这里的isUntitled是一个标志,用来判断文档是否被保存过。而curFile用来保存当前打开的文件的路径。 5.下面到mainwindow.cpp文件,先添加头文件:
本文来源: