我有一个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
行编辑,但未在文件列表中选择它(但是在具有许多相似的目录名时,确实需要这样做)。干杯
最佳答案
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);