我有一个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
行编辑但不在文件列表中选择它(但是当有很多类似的目录名称时非常需要)。
欢呼声
答案 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);