本章节接着上文,实现文本编辑器的新内容创建。
首先我们创建一个新的MyChildWnd
按照以下内容添加我们的代码:
class MyChildWnd : public QTextEdit
{Q_OBJECTpublic:MyChildWnd();QString myCurDocPath;void newDoc(); //创建新文档QString getCurDocName();bool loadDoc();bool saveDoc();bool savesDoc();bool saveDocOpt();void setAlignOfDocumentText(int aligntype);void setParaStyle(int pstyle);
protected:void closeEvent(QCloseEvent *event);
private:void DocBeModified();
private:bool beSaved;void setCurDoc(const QString &docName);void promptSave();
};#endif // MYCHILDWND_H
创建文档
我们先来写我们的创建新文档内容
#include "mychildwnd.h"MyChildWnd::MyChildWnd() {setAttribute(Qt::WA_DeleteOnClose);//子窗口关闭时销毁该对象实例beSaved = false;
}void MyChildWnd::newDoc()
{//设置窗口编号static int wedSeqNum = 1;//设置当前文档word 命名为"Word 文档 编号"的形式,编号在使用后自动+1myCurDocPath = tr("Word 文档 %1").arg(wedSeqNum++);//设置窗口标题,文档被改动后在其名称后面显示"*";setWindowTitle(myCurDocPath+"[*]"+tr("-MyWord"));//文档被改动时发送contentsChanged信号,执行自定义docBeModified()槽函数connect(document(),&QTextDocument::contentsChanged,this,&MyChildWnd::DocBeModified);
}QString MyChildWnd::getCurDocName()
{return QFileInfo(myCurDocPath).fileName();//返回文件路径
}