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

- システム
エンジニア - PythonでGUIの作るにはどのような方法がありますか。
- プロジェクト
マネージャー - 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() |
ボタンイベントでチェック状態が取得できます。
- システム
エンジニア - Tkinterを使えば、様々なGUIが簡単に作成できるのですね。
- プロジェクト
マネージャー - その通りです。ご紹介したソースコードをご自身でも書いてみてください。
まとめ
いかがでしたでしょうか。PythonにてTkinterを使った、GUIを作成する方法を紹介しました。
Pythonでは、ラベルやボタン、入力ボックス、チェックボックスなど、様々なGUIが簡単に作成できます。
ぜひご自身でPythonのソースコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅)遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅)病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅)開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅)債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)