PythonでGUIを作成する方法とは?|Tkinterを使って様々なGUIを作成する方法を紹介!

- SE
- PythonでGUIの作るにはどのような方法がありますか。
- PM
- Tkinterを使えば、ラベルやボタン、入力ボックス、チェックボックスなど、様々なGUIが簡単に作成できます。
[Python]TkinterでGUIを作成しよう
今回は、PythonにてTkinterを使った、GUIを作成する方法を紹介します。Tkinterとは、GUIが作成できるライブラリです。
ここでは、
・基本的な使い方
・ボタン
・入力ボックス
・チェックボックス
について紹介します。
また、開発環境は以下とします。
1 2 |
Jupyter Notebook 6.0.1 Python 3.7.4 |
PythonでのGUI作成に興味のある方はぜひご覧ください。
基本的な使い方
PythonでTkinterを使ったGUIの作成方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 |
import tkinter as tk # GUIの生成 root = tk.Tk() root.mainloop() |
実行すると、ウィンドウが表示されます。この3行だけでGUIが作成できました。
それでは、ラベルを配置してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import tkinter as tk # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # ラベル label = tk.Label(text=u'label', foreground='#ffffff', background='#000000') # ラベルの位置指定 label.place(x=150, y=200) root.mainloop() |
実行すると、ラベル付きのウィンドウが表示されます。placeで位置を指定できます。
ボタン
PythonでTkinterを使った、ボタンの作成方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import tkinter as tk # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # ボタン btn = tk.Button(root, text=u'button') # ボタンの位置指定 btn.place(x=130, y=80) root.mainloop() |
実行すると、ボタン付きのウィンドウが表示されます。
ボタンをクリックすると、ウィンドウを閉じるようにしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import tkinter as tk # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # windowを閉じる def close_window(): root.destroy() # ボタン btn = tk.Button(root, text=u'button', command=close_window) btn.place(x=130, y=80) root.mainloop() |
実行してボタンをクリックすると、ウィンドウが閉じられることが分かります。
入力ボックス
PythonでTkinterを使った、入力ボックスの作成方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import tkinter as tk # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # ラベル label = tk.Label(text=u'何か入力してください') label.place(x=100, y=20) # 入力ボックス editBox = tk.Entry(width=30) editBox.place(x=100, y=40) root.mainloop() |
実行すると、入力ボックスが表示されます。
入力ボックスの入力内容をボタンイベントでクリアしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import tkinter as tk # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # ボタンクリックイベント def DeleteValue(event): # エントリーの中身を削除 editBox.delete(0, tk.END) # ラベル label = tk.Label(text=u'何か入力してください') label.place(x=100, y=20) # 入力ボックス editBox = tk.Entry(width=30) editBox.insert(tk.END, "デフォルトの入力文字") editBox.place(x=100, y=40) # ボタン btn = tk.Button(text=u'clear', width=25) # <Button-1>はクリックイベント。DeleteValueを実行する。 btn.bind("<Button-1>", DeleteValue) btn.place(x=100, y=60) root.mainloop() |
bindでイベントを登録します。<Button-1>はクリックイベントになります。
チェックボックス
PythonでTkinterを使った、チェックボックスの作成方法を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import tkinter as tk # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # checkBox checkBox1 = tk.Checkbutton(text=u"checkBox1") checkBox2 = tk.Checkbutton(text=u"checkBox2") checkBox3 = tk.Checkbutton(text=u"checkBox3") # checkBoxを配置する checkBox1.pack() checkBox2.pack() checkBox3.pack() root.mainloop() |
実行すると、チェックボックスが表示されます。
チェックボックスの状態(チェックあり/なし)を取得してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
import tkinter as tk from tkinter import messagebox import tkinter.simpledialog as simpledialog # GUIの生成 root = tk.Tk() # タイトル root.title(u"Title") # サイズ root.geometry("400x300") # ボタンイベント def check(event): # messageboxに表示するメッセージ message = "" # checkBox1がチェックされているか if checkBoxVal1.get() == True: message += "checkBox1 checked\n" else: message += "checkBox1 not checked\n" # checkBox2がチェックされているか if checkBoxVal2.get() == True: message += "checkBox2 checked\n" else: message += "checkBox2 not checked\n" # checkBox3がチェックされているか if checkBoxVal3.get() == True: message += "checkBox3 checked\n" else: message += "checkBox3 not checked\n" res = messagebox.showinfo("title", message) # checkBoxの結果 checkBoxVal1 = tk.BooleanVar() checkBoxVal2 = tk.BooleanVar() checkBoxVal3 = tk.BooleanVar() # checkBox生成 checkBox1 = tk.Checkbutton(text=u"checkBox1", variable=checkBoxVal1) checkBox2 = tk.Checkbutton(text=u"checkBox2", variable=checkBoxVal2) checkBox3 = tk.Checkbutton(text=u"checkBox3", variable=checkBoxVal3) # checkBoxを配置する checkBox1.pack() checkBox2.pack() checkBox3.pack() # クリックイベントでチェック結果の取得 button1 = tk.Button(root, text=u'チェック結果の取得',width=30) button1.bind("<Button-1>",check) button1.pack() root.mainloop() |
ボタンイベントでチェック状態が取得できます。
- SE
- Tkinterを使えば、様々なGUIが簡単に作成できるのですね。
- PM
- その通りです。ご紹介したソースコードをご自身でも書いてみてください。
まとめ
いかがでしたでしょうか。PythonにてTkinterを使った、GUIを作成する方法を紹介しました。
Pythonでは、ラベルやボタン、入力ボックス、チェックボックスなど、様々なGUIが簡単に作成できます。
ぜひご自身でPythonのソースコードを書いて、理解を深めてください。