QFileDialog类是文件对话框类, 通常我们打开、保存文件时,所弹出的显示指定目录下的文件或文件夹的对话框就是用它创建的,如下面的获取目录地址的对话框:
我们当然可以通过创建类对象,并进行相关设置,来显示上述对话框窗口。不过QFileDialog类提供了更为方便的静态方法,下面以示例的方式展示常用的几种对话框:
对话框类型1:获取指定文件夹地址
//形参分别为: parent窗口指针、对话框标题、默认显示的目录、设置如何运行对话框(Options枚举)
QString dir = QFileDialog::getExistingDirectory(
this,
tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
cout << qPrintable(dir) << endl;
对话框类型2:打开文件
//打开单个文件
QString fileName = QFileDialog::getOpenFileName(
this,
tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)"));//多组扩展名用双分号";;"隔开
//支持打开多个文件
QStringList QFileDialog::getOpenFileNames(...)
对话框类型3:保存文件
//该函数返回用户所设定的包含文件名的目录
QString fileName = QFileDialog::getSaveFileName(
this,
tr("Save File"),
"/home/untitled.png",
tr("Images (*.png *.xpm *.jpg)"));//多组扩展名用双分号";;"隔开