tkinter

【Python/tkinter】名前を付けて保存ダイアログボックスの表示

名前を付けて保存ダイアログボックスを表示するには、tkinter.filedialogモジュールのasksaveasfilename()関数を使います。

以下にシンプルなサンプルプログラムを示します。

from tkinter import filedialog

filename = filedialog.asksaveasfilename()
print(filename)

(実行結果)

python tkinter 名前を付けて保存の表示

 

オプション

オプション名 説明
parent ダイアログを表示する親のウィンドウを指定します。
title ダイアログのタイトルを指定します。
initialdir 最初に表示されるディレクトリを指定します。
initialfile 最初に選択されているファイル名を指定します。
filetypes 選択可能なファイルの種類を設定します。
defaultextension 拡張子が入力されない場合に追加する拡張子を指定します。

(参考)

Tkinter ダイアログ
tkinter.simpledialog--- 標準 Tkinter 入力ダイアログ: ソースコード: Lib/tkinter/simpledialog.py tkinter.simpledialog モジュールは、ユーザーに値を入力させる...

 

名前を付けて保存ダイアログボックスはファイルを開くダイアログボックスとも似ていますが、defaultextensionオプションが異なります。

これは名前を付けて保存ダイアログの「ファイル名」の部分に拡張子を指定しなかった場合に、defaultextensionオプションで指定した拡張子が付加されます。

python tkinter 名前を付けて保存の表示

 

それでは、defaultextensionオプションを指定せずにfiletypesオプションを指定すると、どうなるか?というと、「ファイル名」の部分に、拡張子を付けずにファイル名を入力しても、「ファイルの種類」で指定された拡張子で、拡張子が自動で付加される事はありません。

filename = filedialog.asksaveasfilename(
    filetypes = [("Bitmap", ".bmp"), ("PNG", ".png"), ("JPEG", ".jpg"), ("Tiff", ".tif") ], # ファイルフィルタ
    )

そのため、filetypesオプションとdefaultextensionオプションは両方指定して、以下のようにします。

from tkinter import filedialog

filename = filedialog.asksaveasfilename(
    title = "名前を付けて保存",
    filetypes = [("Bitmap", ".bmp"), ("PNG", ".png"), ("JPEG", ".jpg"), ("Tiff", ".tif") ], # ファイルフィルタ
    initialdir = "./", # 自分自身のディレクトリ
    defaultextension = "bmp"
    )
print(filename)

このようにすると、「ファイルの種類」で指定された拡張子で、自動で拡張子が付加されます。

上記のプログラムではdefaultextension が “bmp”ですが、「ファイルの種類」がPNGのときは、ちゃんと.pngを付加してくれます。

もっというと、defaultextension = “” としても、「ファイルの種類」で指定された拡張子が付加されます。

(実行結果)

python tkinter 名前を付けて保存の表示

 

関連記事

【Python/tkinter】ファイルを開くダイアログボックスの表示
ファイルを開くダイアログボックスを表示するには、tkinter.filedialogモジュールのaskopenfilename()関数を使います。 以下にシンプルなサンプルプログラムを示します。 from tkinter import fi...

コメント

タイトルとURLをコピーしました