QT弹窗获取与保存文件
时间: 2025-06-29 11:12:05 浏览: 11
### QT 中实现文件选择对话框
#### 打开单个文件
为了在 Qt 应用程序中打开单个文件,可以使用 `QFileDialog::getOpenFileName` 方法。此方法返回用户所选文件的路径字符串。
```cpp
void Dialog::on_btnOpenSingle_clicked()
{
QString filePath = QFileDialog::getOpenFileName(
this,
"选择一个文件",
QDir::currentPath(),
"文本文件 (*.txt);;C++ 文件 (*.cpp *.h);;所有文件 (*)"
);
if (!filePath.isEmpty()) {
ui->plainTextEdit->setPlainText(filePath);
}
}
```
该代码片段展示了如何设置过滤器来限定可选文件类型,并将选定文件路径显示在界面上[^1]。
#### 打开多个文件
对于多文件的选择,则应调用 `QFileDialog::getOpenFileNames` 函数,其会返回包含所有被选中的文件名列表。
```cpp
void Dialog::on_btnOpenMulti_clicked()
{
QStringList filepaths = QFileDialog::getOpenFileNames(
this,
"选择多个文件",
QDir::currentPath(),
"文本文件 (*.txt);;图片文件 (*.jpg *.gif *.png);;所有文件 (*)"
);
foreach(const QString& filepath, filepaths){
ui->plainTextEdit->appendPlainText(filepath);
}
}
```
这段代码实现了当用户选择了若干文件之后,在文本区域内逐行追加这些文件的位置信息。
#### 保存文件
而要提供给用户保存新文件的功能时,应该利用 `QFileDialog::getSaveFileName` 来获取目标位置以及名称。
```cpp
void Dialog::on_btnSaveAs_clicked()
{
QString saveFilePath = QFileDialog::getSaveFileName(
this,
"另存为...",
QDir::currentPath(),
"文本文件 (*.txt)"
);
if (!saveFilePath.isEmpty()){
QFile file(saveFilePath);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)){
QTextStream out(&file);
out << ui->plainTextEdit->toPlainText();
file.close();
}
}
}
```
这里不仅包含了询问保存地点的过程,还加入了实际写入数据到指定文件的操作逻辑[^3]。
阅读全文
相关推荐


















