2012-04-16 120 views
4

我正在嘗試使文件選取器選擇一個程序(可執行文件)。在Linux上的QFileDialog中篩選可執行文件

我對QDir和QFileDialog文檔的理解是,下面應該只顯示一個文件對話框,其中只包含可執行文件。但是,即使目錄中有可執行文件,它也不會顯示任何文件(也不會顯示任何目錄)。

self.browseDialog = QtGui.QFileDialog() 
    self.browseDialog.setFilter(QtCore.QDir.Executable | QtCore.QDir.Files) 
    self.browseDialog.exec_() 

我做錯了什麼?這可以實現嗎?我也想做一些更復雜的事情:顯示可執行文件以特定擴展名結尾。

我在Ubuntu Maverick上使用PyQt 4.7.4。

+0

您是否嘗試過或在QtCore.QDir.AllDirs? – 2012-04-16 16:58:03

+1

你的例子適合我,並顯示文件。你甚至可以刪除'Files'過濾器並使用'Executable'。不知道爲什麼你看到不同的結果。 – jdi 2012-04-16 17:13:16

+0

@MichaelDaum:我做到了。 – Max 2012-04-17 08:43:52

回答

0

我正在使用PyQt5,但必須做類似的事情,只有我想.txt文件。爲了執行此操作,我使用了getFileOpenName()和filter =選項。它適用於我的目的。函數名稱已從PyQt4更改爲PyQt5,但下面的鏈接具有PyQt4替代品的名稱。

http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html

的getOpenFileNameAndFilter(),getOpenFileNamesAndFilter()和 getSaveFileNameAndFilter()PyQt4中的QFileDialog的方法現在 被重新命名getOpenFileName(),getOpenFileNames()和 則GetSaveFileName(分別PyQt5)。在PyQt5中支持PyQt4的實現 getOpenFileName(),getOpenFileNames()和getSaveFileName()不是 。

相關問題