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

少なくともWindowsでネイティブダイアログを使用する場合、オプションReadOnlyは効果がありません。


また、既存のディレクトリの選択を無効にすることはできません。
ただし、作成するディレクトリの名前を別のオプションとして追加するか、選択したディレクトリが空でないことを確認することができます。

于 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 に答える