QT里面写对话选择框的方式有以下几种:
第一种:可以选择多个文件的方式
cpp
// 设置文件选择对话框的接受模式为多选模式
QFileDialog dialog;
dialog.setFileMode(QFileDialog::ExistingFiles);
// 设置初始目录
dialog.setDirectory("/home");
// 设置文件过滤器
// dialog.setFilter();
// 显示文件选择对话框
if (dialog.exec()) {
// 如果用户点击了"打开"按钮,则获取选择的文件
QStringList selectedFiles = dialog.selectedFiles();
qDebug() << "Selected Files:" << selectedFiles;
}
第二种方式:只能选择一个文件
cpp
QString fileName = QFileDialog::getOpenFileName(this,QStringLiteral("文件对话框!"),"F:",QStringLiteral("(*WRK);"));
if (!fileName.isEmpty())
{
// 用户选择了一个文件夹,可以在这里进行相应的操作
qDebug() << "Selected file: " << directory;
ui->lineEdit_5->setText(fileName);
}
else{
QMessageBox::warning(this,u8"文件夹路径有误",u8"请确认路径");
}
细说一哈QFileDialog这个函数的使用:
下面这些枚举是用于指示用户可以在文件对话框中选择的内容;即如果用户单击"确定",对话框将返回的内容。
|------------------------------|-----|----------------------------------------------------|
| QFileDialog::AnyFile
| 0
| 文件的名称,无论它是否存在。 |
| QFileDialog::ExistingFile
| 1
| 单个现有文件的名称。 |
| QFileDialog::Directory
| 2
| 目录的名称。同时显示文件和目录。但是,本机 Windows 文件对话框不支持在目录选择器中显示文件。 |
| QFileDialog::ExistingFiles
| 3
| 零个或多个现有文件的名称。 |
选项类型是 QFlags<Option> 的类型定义
|--------------------------------------------|--------------|---------------------------------------------------------------------------------------------------|
| QFileDialog::ReadOnly
| 0x00000020
| 指示模型是只读的。 |
| QFileDialog::HideNameFilterDetails
| 0x00000040
| 指示文件名筛选器详细信息是否隐藏。 |
| QFileDialog::DontUseSheet
| 0x00000008
| 在以前版本的Qt中,如果静态函数被赋予父级,则静态函数将默认创建一个工作表。这在Qt 4.5中不再受支持,并且不执行任何操作,静态函数将始终是应用程序模式对话框。如果要使用工作表,请改用 ()。 |
| QFileDialog::DontUseCustomDirectoryIcons
| 0x00000080
| 始终使用默认目录图标。某些平台允许用户设置不同的图标。自定义图标查找会对网络或可移动驱动器产生很大的性能影响。设置此选项将在图标提供程序中启用该选项。此枚举值是在 Qt 5.2 中添加的。 |
此属性保存对话框的文件模式
文件模式定义用户应在对话框中选择的项目的数量和类型。
默认情况下,此属性设置为 。
此函数将为 和 s 设置标签。可以在调用 setFileMode() 后设置自定义文本。
访问功能:
|-----------------------|------------------------------------------------|
| QFileDialog::FileMode | fileMode() const |
| void | setFileMode (QFileDialog::FileMode mode) |