Qt 之文件选择对话框 QFileDialog

时间:2025-01-29 07:47:27

 使用系统 QFileDialog 接口

 

1、先 new QFileDialog ,逐项设置

#include <QFileDialog>	

    //定义文件对话框类
	QFileDialog *fileDialog = new QFileDialog(this);

	//定义文件对话框标题
	fileDialog->setWindowTitle(QStringLiteral("选择文件"));

	//设置打开的文件路径
	fileDialog->setDirectory("./");

	//设置文件过滤器,只显示.ui .cpp 文件,多个过滤文件使用空格隔开
	fileDialog->setNameFilter(tr("File(*.ui* *.cpp*)"));

	//设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
	fileDialog->setFileMode(QFileDialog::ExistingFiles);

	//设置视图模式
	fileDialog->setViewMode(QFileDialog::Detail);
	
    //获取选择的文件的路径
	QStringList fileNames;
	if (fileDialog->exec()) {
		fileNames = fileDialog->selectedFiles();
	}

setFileMode 模式有四种(AnyFile, ExistingFile, Directory, ExistingFiles),分别表示默认模式,单个文件,文件夹,多个文件

 

2、直接使用系统 get 接口

	// 选择文件夹
    QString imageFolder = QFileDialog::getExistingDirectory(this, tr("选择文件保存路径"), "./", QFileDialog::ShowDirsOnly);
	qDebug() << imageFolder << endl;

    // 选择文件
	QString file;
	QStringList files = QFileDialog::getOpenFileNames(this, tr("selected"), "./", tr("File(*.ui* *.cpp*)"), &file, QFileDialog::ShowDirsOnly);
	qDebug() << "file " << file << endl;