2016-07-22 74 views
1

我有一個QFileDialog對象,我需要用戶選擇一個目錄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行編輯中,但在文件列表中不選擇它(但那是很必要很多類似的dir名稱)。

歡呼

+0

我試了幾個事情'QFileDialog',但沒有奏效。 Qt 5.6.0在這裏,雖然。使用'QUrl'不會改變行爲。沒有選擇被調整,也沒有填充文本框。這可能是一個錯誤。也調整一些標誌沒有成功。正如文檔中所說的那樣'selectFile'應該是這樣的。也許這裏有一個問題。 – maxik

回答

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); 
+0

不錯,但多數民衆贊成只是問題的一半。請參閱編輯問題 – Zaiborg

+0

你嘗試選擇文件之前,請將文件模式()? – wasthishelpful

+0

是;基本上你把我的第一個代碼段,並添加編輯的東西 – Zaiborg