第6篇 实现文本编辑功能.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6篇 实现文本编辑功能

实现文本编辑功能在开始正式写程序之前,我们先要考虑一下整个流程。因为要写记事本一样的,所以最好先打开indows中的记事本,进行一些简单的操作,然后考虑怎样去实现这些功能。再者,再强大的软件,它的功能也是一个一个加上去的,不要设想一下子写出所有的功能。我们这里先实现新建文件,保存文件,和文件另存为三个功能,是因为它们联系很紧,而且这三个功能总的代码量也不是很大。 #include QTextCodec头文件包含,然后在主函数中添加如下代码: QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 3.在mainwindow.h文件中添加public函数声明: void newFile(); // 新建操作 bool maybeSave(); // 判断是否需要保存 bool save(); // 保存操作 bool saveAs(); // 另存为操作 bool saveFile(const QString fileName); // 保存文件// 为真表示文件没有保存过,为假表示文件已经被保存过了 bool isUntitled; // 保存当前文件的路径 QString curFile;#include QMessageBox #include QPushButton #include QFileDialog #include QTextStream 然后在构造函数中添加如下代码来进行一些初始化操作: // 初始化文件为未保存状态 isUntitled = true; // 初始化文件名为未命名.txt curFile = tr(未命名.txt); // 初始化窗口标题为文件名 setWindowTitle(curFile);void MainWindow::newFile() { if (maybeSave()) { isUntitled = true; curFile = tr(未命名.txt); setWindowTitle(curFile); ui-textEdit-clear(); ui-textEdit-setVisible(true); } }bool MainWindow::maybeSave() { // 如果文档被更改了 if (ui-textEdit-document()-isModified()) {// 自定义一个警告对话框 QMessageBox box; box.setWindowTitle(tr(警告)); box.setIcon(QMessageBox::Warning); box.setText(curFile + tr( 尚未保存,是否保存?)); QPushButton *yesBtn = box.addButton(tr(是(Y)), QMessageBox::YesRole); box.addButton(tr(否(N)), QMessageBox::NoRole); QPushButton *cancelBut = box.addButton(tr(取消), QMessageBox::RejectRole); box.exec(); if (box.clickedButton() == yesBtn) return save(); else if (box.clickedButton() == cancelBut) return false; } // 如果文档没有被更改,则直接返回true return true; }bool MainWindow::save() { if (isUntitled) { return saveAs(); } else { return saveFile(curFile); } } 这里如果文档以前没有保存过,那么执行另存为操作saveAs(),如果已经保存过,那么调用saveFile()执行文件保存操作。下面是saveAs()函数的定义: bool MainWindow::saveAs() { QString fileName = QFileDialog::getSaveFile

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档