QFileDialog:如何在getExistingDirectory()中设置显示文件夹内容的选项

时间:2013-10-01 05:00:48

标签: qt qt4 qt4.8 qfiledialog

我使用QFileDialog作为

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

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

2 个答案:

答案 0 :(得分:1)

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

QFileDialog dialog(this);
dialog.setFileMode(QFileDialog::Directory);
dialog.setViewMode(QFileDialog::Detail);
dialog.setDirectory(datadir);
dialog.exec();

答案 1 :(得分:1)

Sebastian的代码应该创建一个原生对话框,除非你创建一个如下的行:

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

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

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

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