原文出处:
http://bbs.qter.org/forum.php?mod=viewthread&tid=17&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline
一、实现新建文件、文件保存和另存为功能
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
;