tkinterを使用してPythonで「はい / いいえ(Yes / No)」メッセージボックス(ダイアログボックス)を作成してみます。
なお、tkinterは、Pythonをインストールすると、標準ライブラリとして含まれています。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。
■コード
それでは実際にtkinterを使用して「はい / いいえ(Yes / No)」メッセージボックス(ダイアログボックス)を表示させるスクリプトを書いてきます。
import tkinter as tk from tkinter import messagebox root = tk.Tk() # ウインドウを作る #キャンバスエリア canvas = tk.Canvas(root, width=300, height=300) canvas.pack() #Yes/No質問メッセージボックス def ExitApplication(): Messagebox = tk.messagebox.askquestion('アプリケーションの終了','アプリケーションを終了してもよろしいですか', icon='warning') if Messagebox == 'yes': #If関数 root.destroy() else: tk.messagebox.showinfo('戻る','アプリケーション画面に戻ります') #'ExitApplication'関数を呼び出すためのボタンを追加する button = tk.Button(root, text = 'アプリケーションを終了', command=ExitApplication, bg='red', fg='gray1') canvas.create_window(150, 150, window = button) root.mainloop()
tkinterモジュールをインポートし、グラフィカルユーザーインターフェイス(GUI)を作成する。
GUIの画面を作成し、Canvas(キャンバス)も作成する。キャンバスの数値を設定する。
設定後、GUIの画面内に「アプリケーションの終了(「はい / いいえ(Yes / No)」)」のメッセージを表示するボタン(button)が必要なので、作成する。「button = tk.Button」でボタンのテキストなどを設定する。create_window()でGUIの画面内でのボタン位置を決める。
ボタンをクリックした時にメッセージボックスが画面に表示され、メッセージボックスの内容を作るのは、’ExitApplication’関数/コマンド内で作成する。「Messagebox = tk.messagebox.askquestion」で「アプリケーションの終了(「はい / いいえ(Yes / No)」)」のメッセージボックスのテキストなど編集する。’ExitApplication’関数/コマンドでは、If関数を使い、メッセージボックスに表示された「はい」を押すとウインドウ(destroy())が閉じ、「いいえ」を押すと、「アプリケーション画面に戻ります」と表示されるウインドウ(tk.messagebox.showinfo())が表示される。
なお、「tk.messagebox.askquestion」で質問メッセージボックスを作成した時の「はい」のボタンを押した時の戻り値は「yes」、「いいえ」のボタンを押した時の戻り値は「no」になるので、If関数を使うところで、「if Messagebox == ‘はい’:」といった記述をしないことに注意する。
■実行
今回の書いたスクリプトを「ExitApplication-test.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、「tk」というウインドウが表示されました。「アプリケーションを終了」というボタンをクリックしてみます。
クリックしてみると、「アプリケーションの終了」というメッセージボックスが表示され、「アプリケーションを終了してもよろしいですか」と質問されているので、「はい」を押すと、メッセージボックスと、「tk」というウインドウの全てが閉じられました。
「いいえ」を押すと、「戻る」というウインドウが表示され、「アプリケーション画面に戻ります」というメッセージが表示され、「OK」ボタンをクリックすると、「tk」というウインドウに戻ることを確認できました。
コメント