ダイアログで動作を変えて実行する
プログラムを作った際に、操作対象のファイルを選べたり、一時的にプログラムを止めて情報を表示したりするとより便利になります。
※tkinterはpythonの標準モジュールです
ダイアログが簡単に使えるモジュール
import tkinter as tk
import tkinter.messagebox as mb
import tkinter.filedialog as fd
import tkinter.simpledialog as sd
tk.Tk().withdraw()
def info(message, title='情報'):
mb.showinfo(title, message)
def warning(message, title='情報'):
mb.showwarning(title, message)
def yesno(message, title='質問'):
return mb.askyesno(title, message)
def input(message, title='質問', value=''):
return sd.askstring(
title, message,
initialvalue=value
)
def select_file(initdir='./'):
return fd.askopenfilename(initialdir=initdir)
def select_savefile(initdir='./'):
return fd.asksaveasfile(initialdir=initdir)
def select_dir(initdir='./'):
return fd.askdirectory(initialdir=initdir)
モジュールを使う際はメインプログラムと同じフォルダにコピーして、import記述で呼び出す!
ダイアログのバリエーション
情報ダイアログ |
ダイアログの種類 |
messagebox.showinfo(title, message) |
情報ボックス |
messagebox.showwarning(title, message) |
警告ボックス |
messagebox.showerror(title, message) |
エラーボックス |
2択ダイアログ |
ダイアログの種類 |
messagebox.askyesno(title, message) |
はい・いいえ |
messagebox.askokcancel(title, message) |
OK・キャンセル |
messagebox.askretrycancel(title, message) |
再試行・キャンセル |
messagebox.askyesnocancel(title, message) |
はい・いいえ・キャンセル |
一行入力 |
ダイアログの種類 |
simpledialog.askfloat(title, message) |
実数の入力 |
simpledialog.askinteger(title, message) |
整数の入力 |
simpledialog.askstring(title, message) |
文字列の入力 |
ファイル選択 |
ダイアログの種類 |
filedialog.askopenfilename() |
ファイルの読み込みダイアログ |
filedialog.askopenfilenames() |
複数ファイルの読み込みダイアログ |
filedialog.asksavefilename() |
ファイルの保存ダイアログ |
filedialog.askdirectory() |
フォルダの選択ダイアログ |
ファイル選択の関数に指定できる引数
- title ➩ ウィンドウのタイトル
- initialdir ➩ 初期フォルダ
- initialfile ➩ 初期選択ファイル
- filetypes ➩ ファイルタイプの指定
- defaltextension ➩ 初期ファイル拡張子(保存ダイアログで)
- mustexist ➩ (フォルダ選択ダイアログで)存在するフォルダが必要