QFileDialog选择txt和.cpp
时间: 2024-01-12 20:46:16 浏览: 30
您可以使用`QFileDialog`类的`setFilter`函数设置过滤器,以便只显示`.txt`和`.cpp`文件。以下是一个示例代码:
```cpp
QStringList fileFilters;
fileFilters << "Text files (*.txt)" << "C++ files (*.cpp)";
QString selectedFilter;
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open File"), QDir::homePath(), fileFilters.join(";;"), &selectedFilter);
```
`getOpenFileNames`函数会弹出一个打开文件对话框,用户可以选择一个或多个文件。`setFilter`函数中的第四个参数是过滤器字符串,它以两个分号分隔不同的过滤器。`selectedFilter`参数将包含用户选择的过滤器,可以用于进一步处理选定的文件。
相关问题
QString File_Path = QFileDialog::getOpenFileName(this, "open","../","source(*.cpp *.h *.DAT *.mat);;Text(*.txt);;all(*.*)");这个程序怎么选择路径
这段代码是使用Qt框架提供的QFileDialog类来打开一个文件选择对话框,让用户选择需要打开的MAT文件。当用户在对话框中选择了一个文件后,QFileDialog::getOpenFileName函数会返回该文件的绝对路径,并将其保存在变量File_Path中。
具体而言,该函数的第一个参数为QWidget类型的parent对象,用于指定文件对话框的父窗口。在这里,this指针表示当前窗口是文件对话框的父窗口,即文件对话框将在当前窗口上打开。第二个参数是对话框的标题,这里为"open"。第三个参数是对话框打开时显示的目录,这里为上一级目录"../"。第四个参数是过滤器,用于指定文件类型。在这里,过滤器分为三类:source(*.cpp *.h *.DAT *.mat)表示源文件类型(.cpp、.h、.DAT和.mat文件),Text(*.txt)表示文本文件类型(.txt文件),all(*.*)表示所有文件类型。用户在文件对话框中选择一个文件后,函数会返回该文件的绝对路径。
因此,当程序运行到这段代码时,会弹出一个文件对话框,用户可以在其中选择需要打开的MAT文件,然后程序会获取该文件的绝对路径并保存在变量File_Path中。
QFileDialog
`QFileDialog::getSaveFileName` 是一个 Qt 框架中的函数,用于弹出一个保存文件的对话框,让用户选择保存文件的路径和名称。该函数可以接受多个参数,包括父窗口、对话框标题、默认文件名、过滤器等。函数返回用户选择的文件路径和名称。
示例代码如下:
```cpp
QString fileName = QFileDialog::getSaveFileName(parent, tr("Save File"), "/path/to/default/file", tr("Text Files (*.txt);;All Files (*.*)"));
if (!fileName.isEmpty()) {
// 保存文件的代码
}
```
其中,`parent` 是可选参数,指定父窗口;`tr("Save File")` 是对话框的标题;`"/path/to/default/file"` 是默认的文件名和路径;`tr("Text Files (*.txt);;All Files (*.*)")` 是文件过滤器,用于筛选可供用户选择的文件类型。如果用户成功选择了一个文件,`fileName` 将包含该文件的完整路径和名称。
需要注意的是,`QFileDialog` 类位于 `QtWidgets` 模块中,因此需要在代码中引入该模块,例如:
```cpp
#include <QtWidgets/QFileDialog>
```