Qt 文本文件的打开、新建、保存以及另存为
时间: 2023-08-06 07:06:59 浏览: 177
要实现Qt中的文本文件打开、新建、保存以及另存为功能,可以使用QFileDialog和QTextStream类。
1. 打开文本文件:
```cpp
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Text Files (*.txt)"));
if(fileName != ""){
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly)){
QMessageBox::critical(this, tr("Error"), tr("Could not open file"));
return;
}
QTextStream in(&file);
QString text = in.readAll();
file.close();
// 在文本编辑器中显示打开的文本内容
ui->textEdit->setText(text);
}
```
2. 新建文本文件:
```cpp
ui->textEdit->clear();
currentFile.clear();
```
3. 保存文本文件:
```cpp
if(currentFile.isEmpty()){
// 如果当前文件名为空,则调用另存为功能
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt)"));
if(fileName == ""){
return;
}
currentFile = fileName;
}
QFile file(currentFile);
if(!file.open(QIODevice::WriteOnly)){
QMessageBox::critical(this, tr("Error"), tr("Could not save file"));
return;
}
QTextStream out(&file);
out << ui->textEdit->toPlainText();
file.close();
```
4. 另存为文本文件:
```cpp
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt)"));
if(fileName == ""){
return;
}
currentFile = fileName;
QFile file(currentFile);
if(!file.open(QIODevice::WriteOnly)){
QMessageBox::critical(this, tr("Error"), tr("Could not save file"));
return;
}
QTextStream out(&file);
out << ui->textEdit->toPlainText();
file.close();
```
以上是基本的实现方式,可以根据自己的需要进行修改和完善。
阅读全文