3

pyQt4について

QFileDialogのgetSaveFilenameに静的メソッドを使用して、ユーザーにWindows/Macのネイティブダイアログが表示されるようにします。

私の問題は、ユーザーが保存ファイル名にファイル拡張子を入力しない場合(たとえば、ファイルを保存する画像の種類を選択する場合)、ファイルの種類を確認する方法がないことです。彼らはとして保存したかった。

フィルタを使用してファイルを保存するダイアログを作成するにはどうすればよいですか。また、ユーザーがどのフィルタを選択したかを知るにはどうすればよいですか。

例えば:

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
file = QtGui.QFileDialog.getSaveFileName(self, 'Save file', '', files_types)

var fileでは、ファイルのパスしかわかりませんが、ユーザーが選択した形式がわかりません。

だから、どうすれば拡張子、またはユーザーが選択したファイルタイプを取得できるか知りたいです。このメソッドを使用してselectedFilterを取得する方法はありますか?

どうもありがとう!

4

3 に答える 3

6

getSaveFileNameAndFilter()次の方法を使用できます。

filename, filter = QtGui.QFileDialog.getSaveFileNameAndFilter(self, 'Save file', '', files_types)

(ただし、PySidegetSaveFileNameAndFilter()には存在せず、getSaveFileName()すでにそのように動作します。これがPython3のデフォルトであるPyQTapiバージョン2にも当てはまるかどうかはわかりません)

于 2011-09-15T16:06:22.600 に答える
0

不可能です。

これを行う唯一の方法は、一般的なダイアログを作成することですが、別の手で、かなりネイティブなウィンドウを失うことになります。

于 2011-08-18T19:21:17.583 に答える
0

PyQt5では、以下を使用してください。

files_types = "GML (*.gml);;Pickle (*.pickle);;YAML (*.yml)"
options = QFileDialog.Options()
filename, _ = QFileDialog.getSaveFileName(
            self, 'Save as... File', 'untitled.gml', filter=file_types,options=options)
于 2020-03-06T07:04:11.563 に答える