2012-04-16 14 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で試しましたか? –

+1

あなたの例は私のためにうまく動作し、ファイルを表示します。 'Files'フィルタを削除して、' Executable'だけを使うこともできます。異なる結果が表示されている理由は不明です。 – jdi

+0

@MichaelDaum:やったよ。 – Max

答えて

0

私はPyQt5を使用していますが、似たようなことをしなければならず、ちょうど.txtファイルしか必要としませんでした。これを実行するために、私はgetFileOpenName()とfilter =オプションを使用しました。それは私の目的のためにうまくいった。関数名はPyQt4からPyQt5に変更されましたが、以下のリンクはPyQt4の代替名です。

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

getOpenFileNameAndFilter()、getOpenFileNamesAndFilter()とPyQt4のQFileDialogの getSaveFileNameAndFilter()メソッドは現在 はPyQt5にそれぞれGetOpenFileName関数()、getOpenFileNames()と getSaveFileName()名前が変更されました。 PyQt5の のgetOpenFileName()、getOpenFileNames()およびgetSaveFileName()の実装は ではありません。

関連する問題