天天看点

QFileDialog 选择多个文件

QFileDialog 提供了非常多的静态函数,用来打开一个对话框,对话框可以用来保存和选择文件,打开文件的时候可以选择多个文件。我们也可以不使用静态函数,用QFileDialog 对象来打开一个对话框。

//实列化一个对象

QFileDialog fileDialog(this);

//设置窗口的标题

fileDialog.setWindowTitle(CQTUtil::ToQString(__XT("请选择音乐文件")));

fileDialog.setNameFilter("音乐文件(*.mp3 *.wav)"); //设置一个过滤器

//也可以使用下面代码设置多个过滤器

QStringList filters;

filters << "Image files (*.png *.xpm *.jpg)"

<< "Text files (*.txt)"

<< "Any files (*)";

fileDialog.setNameFilters(filters); //这个函数名称后面多了一个s,表示设置多个过滤器。要看清楚。

 //这个标志用来设置选择的类型,比如默认是单个文件。QFileDialog::ExistingFiles 多个文件,还可以用来选择文件夹QFileDialog::Directory。QFileDialog::ExistingFile 单个文件。注意这个ExistingFile,单词后面多了一个s 表示选择多个文件。要看清楚了。

fileDialog.setFileMode(QFileDialog::ExistingFiles);

//如果是要保存文件,那就需要再设置一下

fileDialog.setAcceptMode(QFileDialog::AcceptSave);

//弹出对话框

if (fileDialog.exec() == QDialog::Accepted)

{

//strPathList  返回值是一个list,如果是单个文件选择的话,只要取出第一个来就行了。

QStringList strPathList = fileDialog.selectedFiles();

}

继续阅读