当我们在Qt中需要让用户选择一个文件时,可以使用QFileDialog::getOpenFileName()函数。下面是这个函数的参数及用法讲解:
参数:
QWidget *parent: 父窗口指针,如果不需要父窗口,则设置为nullptr。
const QString &caption: 文件对话框标题。
const QString &dir: 默认打开的文件夹路径,如果为空,则打开上次关闭时的文件夹路径。
const QString &filter: 文件类型过滤器,例如:”Text Files (.txt);;XML Files (.xml)“。
QString selectedFilter: 输出选中的过滤器字符串(例如”Text Files (.txt)“),如果不需要输出,则设置为nullptr。
Options options: 对话框选项,包括FileMode、ShowDirsOnly、DontUseNativeDialog等。默认值为0。
用法:
QString fileName = QFileDialog::getOpenFileName(parent, caption, dir, filter, selectedFilter, options);
其中,返回值为用户选择的文件名(包含路径)字符串。如果用户没有选择任何文件,则返回空字符串。
示例代码:
#include <QApplication>
#include <QDebug>
#include <QFileDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 打开文件对话框,并选择一个.txt或.xml格式的文件
QString fileName = QFileDialog::getOpenFileName(nullptr,
"Select a file",
"",
"Text Files (*.txt);;XML Files (*.xml)",
nullptr,
QFileDialog::Options());
if (!fileName.isEmpty())
qDebug() << "Selected file:" << fileName;
else
qDebug() << "No file selected.";
return a.exec();
}
以上就是QFileDialog::getOpenFileName()函数的参数及用法讲解。