零基础文本编辑器开发#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();我们来看下效果:
最后再加个快捷键,大功告成
最后按照惯例,话不多说,我直接跑路
厉害
页:
[1]