QFileDialog预选目录

时间:2016-07-22 08:29:35

标签: c++ qt qt5

我有一个QFileDialog对象,我需要用户选择一个目录

QFileDialog dlg(this, tr("Select directory"));
dlg.setDirectory(currentDir);
dlg.setFileMode(QFileDialog::Directory);
dlg.setOptions(QFileDialog::ShowDirsOnly | QFileDialog::ReadOnly);

我的文件夹结构例如是

<root>
  <dir1>
  <dir2>

currentDir<root>/dir1时,我希望对话框指向<root>目录并在对话框中选择dir1(不仅是文本形式,还有你点击了它)

是可能的,怎么样?

/编辑: 我试过了

dlg.setDirectory("<root>");
dlg.selectFile("dir1");

导致对话框设置正确的目录并填充filename行编辑但不在文件列表中选择它(但是当有很多类似的目录名称时非常需要)。

欢呼声

1 个答案:

答案 0 :(得分:1)

selectFile()应该这样做:

QFileDialog dlg(this, tr("Select directory"));

if(currentDir == "<root>/dir1") {
    dlg.selectFile(currentDir);
}
else {
    dlg.setDirectory(currentDir);
}

dlg.setFileMode(QFileDialog::Directory);
dlg.setOptions(QFileDialog::ShowDirsOnly | QFileDialog::ReadOnly);