2012-12-25 115 views
2

我嘗試以下,以打開應顯示用戶的主目錄中的文件對話框:QFileDialog - 如何指定主目錄

QString fileName = QFileDialog::getOpenFileName(this, 
        tr("Select database"), QDir::homePath(), 
        tr("Database Files (*.db *.sqlite)")); 

問題IST是QFileDialog總是從申請被啓動的目錄開始。任何想法我做錯了什麼?

BTW:我使用Qt 5在Mac OS X

回答

6

在Mac OSX,QDir::homePath()返回HOME環境變量的內容。所以如果這個變量是空的,它會返回一個空字符串。

確保「清除系統環境」選項(在Qt Creator中的項目設置下的「構建環境」下)未被選中。當你選中這個框時,Qt基本上會覆蓋你程序的每個環境變量的值,所以它看起來是空的。

1

使用前面建議的QDir::homePath()或考慮使用Qt5的QStandardPaths類。

+0

OP已經在使用'homePath()'。至於'QStandardPaths',看起來好像在查詢主目錄時仍然只是調用'QDir :: homePath()':http://qt.gitorious.org/qt/qtbase/blobs/stable/src/corelib/io /qstandardpaths_mac.cpp#line161 – jdi

+0

@jdi謝謝你指出這一點,不知道它。 –

+0

我正在使用QDir:homePath,但QFileDialog似乎忽略它。即使硬編碼的值也被忽略。 – rogergl

相關問題