简述
QFileDialog类提供一个对话框,允许用户选择文件或目录。 QFileDialog类允许用户遍历文件系统,选择一个或许多文件或一个目录
选择文件
实例
void slots_page4_SRCImg_Btn_Clicked()
{
//定义文件对话框类
QFileDialog *fileDialog = new QFileDialog(this);
//定义文件对话框标题
fileDialog->setWindowTitle(QStringLiteral("打开图片"));
//设置默认文件路径
fileDialog->setDirectory(".");
//设置文件过滤器
fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
//设置可以选择多个文件,默认为只能选择一个文件
fileDialog->setFileMode(QFileDialog::ExistingFiles);
//设置视图模式
fileDialog->setViewMode(QFileDialog::Detail);
QStringList m_fileNames;
//所有选择的文件的路径
if (fileDialog->exec())
{
m_fileNames = fileDialog->selectedFiles();
//显示
QString fileName = fileDialog->selectedFiles()[0];
ui.page4_SRCImg_Edit->setText(fileName);
}
}
这个实例描述了 通过一个按钮,打开对话框,选择多个图片,选择的图片路径在编辑框中显示。
文件过滤器
可以使用一中类型文件,也可以同时指定多个后缀模式,多个后缀模式形式如下,使用两个分号隔开:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
文件模式
Constant Value Description
QFileDialog::AnyFile 0 文件名,无论文件存在与否.
QFileDialog::ExistingFile 1 已经存在的文件名.
QFileDialog::Directory 2 目录的名称,文件和目录都被显示.
QFileDialog::ExistingFiles 3 个或多个存在的文件的名称.
视图模式
enum ViewMode { Detail, List }
打开目录
实例
//导出配置文件
void on_configExportBtn_clicked()
{
/***
*参数1:父窗口
*参数2:对话框的标题
*参数3:默认的打开的位置,如“D:/”等
*参数4:选项
***/
QString dir;
//定义对话框类
QFileDialog *qFile = new QFileDialog(this);
//设置对话框标题
qFile->setWindowTitle(tr("ConfigExport"));
//设置文件模式
qFile->setFileMode(QFileDialog::DirectoryOnly);
if(qFile->exec())
{
//显示路径
dir = qFile->selectedFiles()[0];
if(dir.isEmpty())
{
return;
}
QString fileName(tr("ColorConfig.xml"));
fileName = dir + "/" + fileName;
//配置导出标识
IO_Config = Config_IO::Export_Config;
emit configExport(fileName);
}
}