如何获得 QFileDialog::getOpenFileNames中选择的文件类型
时间: 2024-03-27 15:39:17 浏览: 63
利用QFileInfo类获取文件信息,FileInfo1.zip
可以使用QFileDialog::nameFilters()函数获取在打开文件对话框中设置的过滤器列表,该列表中包含了允许的文件类型。您可以将这些过滤器应用到选择的文件名中,以确定选择的文件类型。示例代码如下:
```cpp
QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open files"), "/", tr("Image Files (*.png *.jpg *.bmp)"));
QStringList filters = QFileDialog::nameFilters();
QStringList allowedExtensions;
foreach (QString filter, filters) {
allowedExtensions << filter.split(" ", QString::SkipEmptyParts);
}
foreach (QString fileName, fileNames) {
QFileInfo fileInfo(fileName);
QString extension = fileInfo.suffix();
if (allowedExtensions.contains(extension, Qt::CaseInsensitive)) {
// This file is allowed
}
}
```
在上面的示例中,我们首先使用QFileDialog::getOpenFileNames()函数打开文件对话框并获取所选择的文件名。我们还使用"Image Files (*.png *.jpg *.bmp)"过滤器列表来限制可以选择的文件类型。接下来,我们使用QFileDialog::nameFilters()函数获取过滤器列表,并将其分解为一个允许的扩展名列表。最后,我们对所选择的每个文件进行循环,并使用QFileInfo::suffix()函数获取文件扩展名。如果该扩展名在允许的扩展名列表中,则说明该文件是允许的文件类型。
阅读全文