王逗比666 发表于 2020-12-26 05:19:14

零基础文本编辑器开发#5

突然心血来潮又把工程打开了,这次本意是解决无法打开文件的问题,结果一看才发现我对"Open"创建了两个对象,一个叫actionOpen一个叫actionOpen_2,然后我所有操作都是在actionOpen上进行的实际上系统用的是actionOpen_2。。。那么把这个小问题解决后我们就可以打开文件了,然而在我随意打开了一个文件后才发现它又双叒叕乱码了
解决问题的方法就是我们在main.cpp中加入两行代码:
//解决中文乱码
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForLocale(codec);(记得要加头文件{:10_256:})
然后就可以正常显示了:

然后我又加了个关闭的功能,原理就是如果文本框内有文字存在,它会询问你是否保存,无论是不保存还是保存后它会将当前文本框内的东西全部清除掉(如果什么都没有它就什么都不做)
代码实现也很简单:
if(!(ui->textEdit->document()->isEmpty())) {
             if(QMessageBox::Yes == QMessageBox::information(this, " ",
                                                            "Do you want to save the current file",
                                                            QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) {
                QString fileName=QFileDialog::getSaveFileName(this,"Save File",QDir::currentPath());
                           QFile *file=new QFile;
                           file->setFileName(fileName);
                           bool ok=file->open(QIODevice::WriteOnly);
                           if(ok)
                           {
                               QTextStream out(file);
                               out<<ui->textEdit->toPlainText();
                               file->close();
                               delete file;
                           }
             }
      }
      ui->textEdit->clear();我们来看下效果:

最后再加个快捷键,大功告成
最后按照惯例,话不多说,我直接跑路

18647293236QQ 发表于 2021-1-2 07:40:59

厉害
页: [1]
查看完整版本: 零基础文本编辑器开发#5