1-------QFileDialog::getOpenFileName
示例:括号里的参数分别是:指定父类窗口部件、对话框使用的标题、默认打开后显示的目录(即告诉它从哪一级目录开始)、右下角的文件过滤器。
QString file_name = QFileDialog::getOpenFileName(NULL,"标题","./",,"*.xml");
qDebug() << file_name;
./默认打开当前项目所在的目录;最后一个参数有的话,表示筛选打开包含此文件的目录;
多种后缀名的筛选时.
若最后一个参数,没有写的话.就默认直接打开当前的目录.
当选中某个文件,点击确定时,返回详细的文件名,若没有则返回"".
注:不可以返回目录名
获取多个文件名的情况
QStringList file_name = QFileDialog::getOpenFileNames(NULL,"标题",".","*.*");
qDebug() << file_name.at(0);
qDebug() << file_name.at(1);
2--------QFileDialog::getExistingDirectory
QString file_name = QFileDialog::getExistingDirectory(NULL,"caption","./");
qDebug() << file_name;
返回目录名.
注:我们在使用QFileDialog::getOpenFileName、QFileDialog::getExistingDirectory等方法时,有时候会发现首次打开很卡,尤其是在默认目录很多文件的时候,此时你可以考虑设置这些函数最末尾的参数为QFileDialog::DontUseNativeDialog,表示不采用本地系统对话框,这样的话会采用Qt的对话框,速度快很多,估计系统的对话框在打开的时候会做很多初始化加载处理。
QFileDialog::getExistingDirectory(this, "", "", QFileDialog::DontUseNativeDialog);