2

我正在QFileDialog使用

filename = QFileDialog::getExistingDirectory(this,"Select Image File: ",dataDir,0);

我希望我可以在选择文件夹之前检查文件夹内的文件。功能getExistingDirectory()设置QFileDialog::ShowDirsOnly为默认选项。我检查了文档,没有任何与此相反的选项。所以我将最后一个参数设置为 0。但现在它没有使用本机对话框。我想对此使用本机对话框。我不知道如何做到这一点,因为在 UseNativeDialog 的选项中找不到标志。请帮忙。

4

2 回答 2

1

Sebastian 的代码应该创建一个原生对话框,除非你写了这样一行:

dialog.setOption(QFileDialog::DontUseNativeDialog, true);

但是,我无法在 Windows 下使用它,即使文档说该QFileDialog::Directory选项默认情况下应该显示文件。不仅如此,还在做:

qDebug() << dir_selector.testOption(QFileDialog::ShowDirsOnly);

在我的系统上显示 false,表示某处可能存在错误。

于 2013-12-03T21:29:06.223 回答
1

尝试自己创建文件对话框,例如:

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::Directory);
dialog.setViewMode(QFileDialog::Detail);
dialog.setDirectory(datadir);
dialog.exec();
于 2013-10-01T06:38:46.790 回答