4

使用方法/命令:

OpenCreateDirectory() 
{  
    QString Directory = QFileDialog::getExistingDirectory(this,
                        tr("Choose Or Create Directory"),
                        "/home",
                        QFileDialog::DontResolveSymlinks);
}

我可以创建一个新目录或选择一个现有目录。有没有办法禁用创建新目录的可能性?另外,有没有办法禁用选择现有目录的可能性?

更准确地说:当我使用上述方法时,会弹出一个窗口,我可以在其中创建新目录或打开现有目录。我想要做的是限制方法,这样我就可以创建一个新目录而不能只打开现有目录,或者在另一种情况下限制方法,这样我就可以打开现有目录而不能创建一个新目录。

4

2 回答 2

4

您可以使用以下选项阻止创建新目录:

QFileDialog::DontUseNativeDialog | QFileDialog::ReadOnly 
| QFileDialog::ShowDirsOnly

如果您使用本机对话框,这些选项ReadOnly不会有任何效果,至少在 Windows 上是这样。


而对于禁用已经存在的目录的选择,你不能。
但是您可以将要创建的目录的名称添加为单独的选项,或者检查所选目录是否为空。

于 2012-03-08T14:49:36.247 回答
3

是的,您可以在QFileDialog::ReadOnly创建QFileDialog. 所以创建它:

QString Directory = QFileDialog::getExistingDirectory(this, tr("Choose Or Create Directory"),
                                                         "/home",
                                                           QFileDialog::DontResolveSymlinks | QFileDialog::ReadOnly);

文件对话框的“创建目录”按钮仍然存在,但您无法创建目录。我在 Ubuntu 上成功使用了这个功能。

于 2012-03-08T14:20:16.773 回答