2016-08-03 83 views
2

有沒有什麼辦法可以直接使用QFileDialog瀏覽文件夾?PyQt - QFileDialog - 直接瀏覽到一個文件夾?

含義,而不是每個文件夾雙擊在瀏覽到目標文件夾,只需某處輸入路徑或使用熱鍵如一個(SHIFT +命令+ G)在Finder中Mac OS X上

謝謝!

編輯:(我的代碼)

filter = "Wav File (*.wav)" 
    self._audio_file = QtGui.QFileDialog.getOpenFileName(self, "Audio File", 
                 "/myfolder/folder", filter) 
    self._audio_file = str(self._audio_file) 

回答

3

如果您使用靜態QFileDialog功能,你會得到一個原生文件對話框,所以你會是李適應平臺提供的功能。您可以查閱您平臺的文檔以查看您想要的功能是否可用。

如果它不可用,您將不得不解決Qt的內置文件對話框,並添加您自己的功能。對於您的特定用例,這應該很容易,因爲內置對話框似乎已經擁有了您想要的內容。它有一個side-bar,顯示用戶可以直接導航到的「地點」列表。您可以設置自己的地方是這樣的:

dialog = QtGui.QFileDialog(self, 'Audio Files', directory, filter) 
dialog.setFileMode(QtGui.QFileDialog.DirectoryOnly) 
dialog.setSidebarUrls([QtCore.QUrl.fromLocalFile(place)]) 
if dialog.exec_() == QtGui.QDialog.Accepted: 
    self._audio_file = dialog.selectedFiles()[0] 
+0

太棒了,'Sidebar'的東西肯定有幫助。謝謝! – YaronGh

0

下面你會發現一個簡單的測試,在一定的路徑直接打開的對話框中,在這種情況下將是當前工作目錄。如果您想直接打開另一條路徑,你可以只使用包含在os.path中模塊Python的目錄功能:

import sys 
import os 
from PyQt4 import QtGui 


def test(): 
     filename = QtGui.QFileDialog.getOpenFileName(
      None, 'Test Dialog', os.getcwd(), 'All Files(*.*)') 

def main(): 
    app = QtGui.QApplication(sys.argv) 

    test() 

    sys.exit(app.exec_()) 

if __name__ == "__main__": 
    main() 
+0

謝謝,但是這不是真的是我一直在尋找的。我的意思,我想,讓用戶瀏覽到特定的目錄(不雙擊一路它)在文件對話框已被打開之後。 – YaronGh

+0

不知道如果我理解正確然後,getOpenFileName包括一個導航欄,您可以直接鍵入您的路徑,而無需使用鼠標,是你想要的? – BPL

+0

是的,但是如果我設置我的QFileDialog打開目錄,然後輸入一個目錄路徑,它只是選擇它並返回,並且不會導航到它並「停留」在那裏。 – YaronGh

0

PyQt 4,你能夠只需添加一個QFileDialog構建具有路徑文本框的窗口嵌入在對話框中。你可以在這裏粘貼你的路徑。

QtGui.QFileDialog.getOpenFileName(self, 'Select file') # For file. 

爲了選擇一個目錄:

QtGui.QFileDialog.getExistingDirectory(self, 'Select directory') 

每個將採用路徑文本框

enter image description here

+0

由於某種原因,這對我不起作用..使用: 'QtGui.QFileDialog.getOpenFileName(self,「Load File」,filter)'。我沒有得到那個路徑文本框。 'filter'就是我創建的一個字符串,用於選擇特定類型的文件。 – YaronGh

+0

就像我在下面提到的那樣,如果我將我的QFileDialog設置爲打開目錄,然後在出現的默認路徑文本字段中輸入目錄路徑,它只是選擇該文件夾並返回,它不會導航到它並「保留」那裏。 – YaronGh

+0

也許張貼您的對話框和完整的代碼截圖? – ospahiu

相關問題