使用方法/命令:

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

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

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

最佳答案

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

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

如果您使用 native 对话框,至少在 Windows 上,选项 ReadOnly 没有任何影响。

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

关于c++ - 如何指定 QFileDialog::getExistingDirectory() 方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9618381/

10-12 15:24