2013-04-24 76 views
9

我無法使用Qt 4.8更改QFileDialog的當前目錄。在Windows和Mac OS 10.6 Snow Leopard上,相同的代碼工作正常。如果我不使用本機Mac OS X對話框,它也可以正常工作。QFileDialog :: getOpenFileName未在Mac OS 10.8上設置初始目錄Mountain Lion

這工作:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop",QString(),0,QFileDialog::DontUseNativeDialog); 

這不起作用:

fn=QFileDialog::getOpenFileName(this,"Select File","/Users/myuser/Desktop"); 

看來,如果大部分時間它打開來getOpenFileName最後一次通話的最後一個路徑等。

回答

5

這是Qt中的一個bug,據報道在Qt 5.0.1和Qt 4.8.4中已修復(雖然它似乎仍然可以在4.8.4中由人們(包括我自己)重現)。

這個錯誤已經在JIRA中報告爲QTBUG-20771,QTBUG-28161最後QTBUG-35779(它似乎最終完全解決了Qt 5.2.1中的問題)。這裏是Gerrit的補丁鏈接。

+0

謝謝!我已經搜索了Qt錯誤跟蹤器,但沒有找到那些2. – 2013-04-25 14:30:17

+0

仍然有同樣的錯誤在這裏..在QT 5.8 – vivi 2018-01-01 22:39:35

7

在小牛隊的Qt5.2.0上遇到了同樣的問題... 我找到了一個解決方法:將一個虛擬文件名添加到您要選擇的目錄。 但是,請務必不要在Windows上執行此操作,因爲用戶會看到它。

QString dir = "/Users/myuser/Desktop"; 
#if defined(__APPLE__) 
dir += "/MyFile.txt"; 
#endif 
fn = QFileDialog::getOpenFileName(this, "Select File", dir); 

此外,對於那些像我這樣實例化一個文件對話框,因爲他們需要更多的選項,你也可以這樣做:

QFileDialog fileDialog(this, "Select File"); 
#if defined(__APPLE__) 
fileDialog.selectFile(dir + "/MyFile.txt"); 
#else 
fileDialog.setDirectory(dir); 
#endif 
... 
+0

同樣仍然錯誤在這裏..在QT 5.8 – vivi 2018-01-01 22:39:23

相關問題