みなさんこんにちは、ソラです。

こんな悩みを解決していきます。
本記事の読者理想
- PythonでGUIを作成できるライブラリを知りたい
- Tkinterとは何か知りたい
- Tkinterの使い方とは
機械学習やビッグデータ解析などに強いPythonですが、実はGUIも作成することができます。
中でも今回紹介するTkinterは数あるGUIライブラリの中でも比較的学習しやすい、プログラミング初心者にもおすすめできるGUIライブラリです。
そこで本記事では、Tkinterをおすすめする理由とともにちょっとしたサンプルをまとめていきます。
< まずはプログラミング無料体験レッスンから >
目次
PythonのGUIライブラリ一覧
まずはPythonの代表的なGUIライブラリを一覧で見てみましょう。
チェックリスト
- Tkinter
- Kivy
- wxPython
- PyQt
- PySimpleGUI
どれも需要ある使い勝手の良いライブラリで、どれか1つでも習得すれば大変価値のあるスキルとなります。
中でも今回ご紹介するTkinterは特に使い勝手がよく、PythonのGUIならといえるほど人気のライブラリです。
ぜひ本記事を機に扱ってみましょう!
Tkinterとは
Pythonの標準ライブラリであるTkinter。
数あるGUIライブラリの中でも比較的理解しやすく、コードも直感的に扱えるつくりになっているのが特徴です。


ちょっとしたGUIどころか、顧客管理システムなんかも作れる優秀なGUIです。
個人的には標準ライブラリでこの機能なら仕事でも使える、最強のライブラリだと感じています。
Tkinterをおすすめする3つの理由
ここからはTkinterをおすすめする3つの理由をまとめていきます。
おすすめの理由
- 標準ライブラリでインストール不要
- コードがシンプルで分かりやすい
- 実用例が他GUIと比較して多い
1つずつ解説していきます。
標準ライブラリでインストール不要
Tkinterは標準ライブラリで改めてインストールする必要がありません。
Pythonをインストールしたパソコンであれば、環境設定を一切せず開発をすることが可能なのです。
開発環境を整えなくていいのは、Tkinterを使用する最大のメリットでしょう。
また、Tkinterで作成したプログラムはクロスプラットフォームで動作可能です。
WindowsやMacという縛りなく使用できるのは魅力的です。
-
-
参考Windows版Pythonのインストール方法を解説【一緒に開発環境を作りましょう】
コードがシンプルで分かりやすい
Tkinterはコードがシンプルで分かりやすい特徴があります。
GUIアプリを開発できるプログラミング言語はたくさんあるのですが、正直どれも必ず1癖2癖あります。
しかし、Tkinterは本当に癖がありません。
後ほどサンプルをご紹介しますが、プログラミング初心者でもわかりやすいコーディングとなっています。
実用例が他GUIライブラリと比較して多い
Tkinterは実用例が他GUIライブラリと比較して多く存在します。
ネット上にもたくさんソースは転がっていますし、Tkinterをまとめた書籍もいくつも出版されています。
私はほぼ完全独学で学習したため、いろんなサイトを参考にしてきました。
中でも以下の3サイトは本当に助かる情報を載せています。
大抵の情報は載っていますので、気軽に始めてみましょう!
< まずはプログラミング無料体験レッスンから >
簡単な画面を作成してみましょう
さっそくTkinterでGUIを作成してみましょう。
今回作成した環境は以下の通りです。
開発環境
- Pythonバージョン: Python3.9.0
- 開発環境: VSCode
- OS: Windows10Pro 64ビット
私は開発環境にVSCodeを使用していますが、開発できるエディタであれば何でも構いません。
また、もしまだPythonをインストールしていない方はこちらの記事を参考にインストールしてみましょう。
作成する画面とコード
今回作成するサンプルGUIアプリがこちらです。
内容的には以下の通りです。
簡単な流れ
- テキストに適当な文字を入力する
- 表示ボタンをクリックすると、テキストに書いた文字がメッセージとしてポップアップされる
- 閉じるボタンをクリックするとアプリを終了する
シンプルですが、GUIに必要なボタンクリック処理やテキストの文字取得など要素が詰まったGUIアプリです。
では実際にコードをコピーして動かしてみましょう!
import tkinter as tk
from tkinter import messagebox
# ----閉じるボタンをクリックされたときの処理----
def App_Close():
# 画面を閉じる
root.quit()
# ----表示ボタンをクリックされたときの処理----
def On_Click():
msg = txtEntry.get() # テキストの内容を取得する
# メッセージを表示する
if msg == "":
messagebox.showerror("サンプル", "何も書かれていません。")
else:
messagebox.showinfo("サンプル", msg)
def WindowMain():
global root, txtEntry
# 画面構成
root = tk.Tk()
root.title("サンプル")
root.geometry("300x200")
# ----Wedgetを設置する----
# テキスト
txtEntry = tk.Entry(root, font=("", 10))
txtEntry.place(x=50, y=20, width=200, height=35)
# ボタン
btnHello = tk.Button(root, text="表示", width=10, command=On_Click)
btnHello.place(x=110, y=70)
btnClose = tk.Button(root, text="閉じる", width=10, command=App_Close)
btnClose.place(x=110, y=150)
# 画面を表示する
root.mainloop()
if __name__ == '__main__':
WindowMain()
コードの解説
今回のコードで解説するのは以下の5つです。
解説ポイント
- ライブラリのインポート
- Pythonを実行するおまじないコード
- 画面を構成する部分
- 表示ボタンのクリック処理
- 閉じるボタンのクリック処理
1つずつ順に解説していきます。
ライブラリのインポート
Pythonでプログラミングするうえでライブラリのインポートは欠かせません。
本コードの上から2行までがインポート部分です。
import tkinter as tk
from tkinter import messagebox
要するに、このプログラムではこのライブラリを使用しますよという宣言です。
Tkinterを使用する場合、1行目は必ず必要になります。
また、今回はメッセージ機能を採用しているため、加えて2行目で宣言しています。
Pythonを実行するおまじないコード
次に見るのは最後の2行です。
if __name__ == '__main__':
WindowMain()
WindowMain()は画面を呼び出すための個人的な関数ですが、注目すべきは「if __name__~」の部分です。
今回はあまり詳しく説明はしませんが、Pythonをコーディングするうえで大事な文言です。
Pythonを実行するおまじないコードと覚えておきましょう。
画面を構成する部分
次は画面を構成するコードになります。
def WindowMain():
global root, txtEntry
# 画面構成
root = tk.Tk()
root.title("サンプル")
root.geometry("300x200")
# ----Wedgetを設置する----
# テキスト
txtEntry = tk.Entry(root, font=("", 10))
txtEntry.place(x=50, y=20, width=200, height=35)
# ボタン
btnHello = tk.Button(root, text="表示", width=10, command=On_Click)
btnHello.place(x=110, y=70)
btnClose = tk.Button(root, text="閉じる", width=10, command=App_Close)
btnClose.place(x=110, y=150)
# 画面を表示する
root.mainloop()
rootという変数にTkinterの基を呼び出し、画面のタイトルやサイズを指定します。
次に、画面の中にWedget(ボタンやテキスト)などを配置するコードを行っていきます。
大きさや配置場所は何となく理解できると思います。

という方が大半でしょう。
これはイベント関数といい、ボタンがクリックされたときの処理をまとめた関数の名前が入っています。
今回でいえば、
・表示ボタン → On_Click
・閉じるボタン → App_Close
という関数が呼び出されるようになっています。
表示ボタンのクリック処理
今回、表示ボタンをクリックすると「On_Click」という関数が呼び出されるようになっています。
それが下記コード。
# ----表示ボタンをクリックされたときの処理----
def On_Click():
msg = txtEntry.get() # テキストの内容を取得する
# メッセージを表示する
if msg == "":
messagebox.showerror("サンプル", "何も書かれていません。")
else:
messagebox.showinfo("サンプル", msg)
クリックされたら、まずはテキストに書かれた内容を取得し、msgという変数に代入します。
次にmsgに代入された値によって、表示するメッセージを変更するように条件文を書いています。
・もしmsgに何も入っていない場合 → 「何も書かれていません。」
・上記条件以外 → msgの内容をそのまま出力
条件文はGUIでもかなり使用頻度が高いので、ぜひ習得しておきましょう!
\ Pythonの基礎が習得できます!/
-
-
参考【有料版を利用するべき】Progateを正しく利用してプログラミングの基礎を身に付けよう
閉じるボタンのクリック処理
最後は閉じるボタンのクリック処理です。
# ----表示ボタンをクリックされたときの処理----
def App_Close():
# 画面を閉じる
root.quit()
Tkinterでは画面を閉じるとき、quit()と入力します。
これはコマンドプロンプトでPythonを起動した場合でも使用しますので、ぜひ覚えておきましょう!
< まずはプログラミング無料体験レッスンから >
Tkinter:まとめ
Tkinterは標準ライブラリでPythonをインストールすれば即扱えますし、GUIを触れるにはもってこいのライブラリです。
また、Tkinterを習得すれば、ある程度のGUIを作成できます。
ときに依頼をこなしたり、自分専用の業務アプリを作るのも良いでしょう。
学習しやすいGUIライブラリ、Tkinter。
ぜひお試しください!!
おすすめ記事
-
-
Pythonで何ができるの?具体例を7つまとめました