「Python」のTkinterとは、GUIを組むことのできるウィジェットツールキットであり、スクリプトをGUI形式で実行できます。本記事ではTkinterのインストール方法、サンプルコードなどを解説します。
「Python」のTkinterは、GUIを効率的に作成するためのウィジェットツールキットです。「Python」のスクリプトをGUI形式で実行し、ユーザーと対話的に操作できるアプリケーションを開発するのに適しています。
本章ではサンプルコードを通じてTkinterのインストール方法や基本的な使い方を解説します。
目次
PythonのTkinterとは?

「Python」のTkinterは、GUIを構築する際に役立つウィジェットツールキットです。「Python」スクリプトをGUI形式で実行することにより、視覚的な要素を持つわかりやすいアプリケーションを作成できます。
TkinterはWindows、Mac、そしてLinuxといった主要なOSで動作可能です。また、TkinterはPython 2.x系でも利用可能ですが、最新の機能や強化されたセキュリティを享受しながらGUI開発を進めるには、Python3での利用が推奨されています。
この章では、Tkinterの基本的な概要に焦点を当てて解説していきます。
ウィジェットツールキットとは?
ウィジェットツールキットとは、GUIの構築に必要なライブラリの総称です。これはユーザーとプログラムが視覚的に対話するためのインターフェース(ユーザーが操作しやすい画面やボタンなど)を提供するもので、デスクトップアプリケーションの開発で頻繁に使用されます。
インターフェースとは、異なる2つのシステム、またはコンポーネントがお互いに情報を交換するための手段や方法のことです。
たとえば、ボタン、テキストボックス、スライダーといった、アプリケーションにおける多くのインターフェースがウィジェットツールキットを用いて作成されます。Tkinterは「Python」で利用される代表的なウィジェットツールキットのひとつであり、「Python」に標準で同梱されています。
Tkinterを使用することで、Python開発者は効率的に美しく機能的なGUIアプリケーションの開発が可能です。
PythonのTkinterの主なメリットとは?

「Python」のTkinterの主なメリットは、以下の3つです。
・標準搭載のライブラリであるためインストールが不要
Tkinterは「Python」に標準で搭載されているライブラリであるため、別途インストールする必要がありません。そのため、「Python」をインストール後すぐにTkinterを活用した開発を開始できます。
・利用者が多い、公式からドキュメントがでているため問題解決が容易
Tkinterは人気があるライブラリで多くの利用者がいるため、エラー解決に関するさまざまな情報やサンプルコードがインターネット上で共有されています。
さらに、「Python」やTkinterの公式からも豊富なドキュメントが提供されているため、問題が発生した際の解決の道筋が立てやすいです。
・シンプルで扱いやすい
Tkinterはボタン(Button)、テキストフィールド(Entry)、ラベル(Label)など、一般的なユーザーインターフェースコンポーネント(ウィジェット)をシンプルな関数呼び出しで作成できます。そのため、シンプルで直感的なコードの記述ができ、扱いやすいというメリットがあります。
これにより、開発者は複雑なコードを書かずに、効率的にGUIアプリケーションの開発をおこなえるのです。
PythonのTkinterの主なデメリットとは?

「Python」のTkinterの主なデメリットは、以下の2つです。
・他のGUIライブラリと比較して複雑な業務がおこないにくい
Tkinterは基本的なGUIアプリケーションを作成するのに適していますが、他のGUIライブラリに比べると高度なカスタマイズや機能が実装されていない点に注意が必要です。
Tkinterは、シンプルさと直感性を重視して設計されているため、高度な機能は搭載されていません。しかし、複雑な業務がおこなえないというわけでもなく、Tkinterでも経験や技術を活かすことで、他のライブラリと同じようなカスタマイズがおこなえます。
・ウィジェットの数が多いとコードの可読性や保守性に配慮が必要
アプリケーションのコンポーネントが多くなると、Tkinterのコードも増え、その結果コードの可読性や保守性に影響を与える可能性があります。
しかし、多くのウィジェットがあっても、適切な設計とコードの整理がなされていれば、コードを読みやすく保てます。ウィジェットの数が多い場合でも、計画的なコード設計と整理により、コードの構造を管理し、保守性や可読性を維持することが重要です。
PythonのTkinterをインストールする方法

異なるオペレーティングシステムによってインストール手順が異なるため、本章ではTkinterのインストール方法をOSごとに詳しく解説します。
- Windowsにインストールする方法
- MacOSにインストールする方法
- Linuxにインストールする方法
これらのセクションを通じて、あなたの環境に最適なインストール手順を学び、Tkinterのセットアップをおこなってみましょう。
Windowsにインストールする方法
「Python」のTkinterを手に入れるには、「Python」の公式サイトよりインストーラーをダウンロードするか、Windows Storeを活用しましょう。
Pythonインストーラーを起動後、Tkinterはデフォルトで選択されているため、「Install Now」をクリックすればTkinterも含めてインストールされます。カスタマイズしたい場合は、「Customize installation」をクリックし、「tcl/tk and IDLE」がチェックされていることを確認後、インストールを進めましょう。
Tkinterは「Python」の標準搭載ライブラリのため、すでにPythonがインストールされている場合は、基本的に追加でインストールする必要はありません。しかし、もしTkinterがインストールされていない場合は、コマンドプロンプトを開き、以下のコマンドを入力してTkinterを追加できます。
pip install pytk
これで、Python環境にTkinterが組み込まれ、GUIアプリケーション開発がスムーズにおこなえるようになります。
MacOSにインストールする方法
MacOSの場合もWindows版と同様に、公式サイトから「Python」のインストーラーをダウンロードします。そして、インストーラーを実行し、画面の指示に従ってインストールを進めてください。Tkinterは通常、「Python」と一緒にインストールされます。
すでに「Python」がインストールされているのに、Tkinterがインストールされていない場合は、Macのターミナルを使用してインストールしてください。
Homebrewを使ってtcl-tkをインストールすることでTkinterを利用できるようになります。ターミナルで以下のコマンドを実行してください。
brew install tcl-tk
これにより、MacOS環境でもTkinterを使用してGUIアプリケーションを開発できます。
Linuxにインストールする方法
LinuxでTkinterをインストールする際、OSのパッケージマネージャーが活用されます。まずは既存の「Python」環境でTkinterが利用できるか確認しましょう。ターミナルを開き、以下のコマンドを入力してPythonを起動せずにTkinterがインストールされているか確認します。
python -m tkinter
このコマンドを実行した結果、小さなTkinterウィンドウが表示されれば、Tkinterはすでにインストールされています。ウィンドウが表示されない場合やエラーがでた場合は、Tkinterがインストールされていません。そのため、Ubuntu系ディストリビューション(Ubuntuの環境を構築できるようドライバやソフトウェア、プログラムをまとめた配布物)では、次のコマンドでインストールしてください。
sudo apt-get install python3-tk
これにより、Tkinterがインストールされ、「Python」でGUIアプリケーションの開発が可能になります。
PythonのTkinterの基本的な使い方

この章では、「Python」のTkinterライブラリを使って、GUIアプリケーションを作るうえで必要となる以下の基本的な手法とテクニックを詳しく紹介します。
- GUIの画面を作ろう
- GUIのラベルを作って表示しよう
- GUIのテキストボックスを配置してみよう
- 複数のテキストボックスを配置し、レイアウトを工夫しよう
これらの内容をしっかり押さえることで、Tkinterの活用する基礎知識を身につけることが可能です。
GUIの画面を作ろう
「Python」のTkinterを使用して、まずは基本的なGUIの画面を作成する方法を解説します。このステップはGUIアプリケーション作成の土台となります。以下が土台となる基本的なコードです。
import tkinter as tk # GUIの土台を作る root = tk.Tk() # GUIのループ root.mainloop()
最初にライブラリをインポートしたら、次にtk.Tk()でGUIのウィンドウオブジェクトを作成し、GUIの土台を作ります。最後に root.mainloop() でGUIを表示し、ユーザーのアクションを待ちます。このコードを実行すると、空のウィンドウが表示されるので、これをベースにGUIを構築していきましょう。
GUIのラベルを作ろう
GUIアプリケーションを作る際に、ラベルはテキスト情報をユーザーに表示するための重要な役割を果たします。以下は、Tkinterを使用してラベルを作る簡潔なコード例です。
import tkinter as tk # GUIの土台を作る root = tk.Tk() # ラベルの作成 label = tk.Label(root, text="Hello, Tkinter!") # ラベルの配置 label.pack() # GUIのループ root.mainloop()
このコードの中で、tk.Label(root, text=”Hello, Tkinter!”)の部分がラベルを作成するコードです。label.pack()でラベルをウィンドウ内に配置します。最後にroot.mainloop()でGUIを表示すると、ラベルが表示されます。
GUIのテキストボックスを配置しよう
次は、TkinterでGUIアプリケーションにテキストボックスを追加する方法を学びましょう。以下がそのサンプルコードです。
import tkinter as tk # GUIの土台を作る root = tk.Tk() # テキストボックスの作成 text_box = tk.Entry(root) # テキストボックスの配置 text_box.pack() # GUIのループ root.mainloop()
このサンプルコードでは、tk.Entry(root)でテキストボックスを作成します。text_box.pack()を使ってテキストボックスをウィンドウ内に配置します。root.mainloop()を実行すると、ウィンドウが表示され、テキストボックスにテキストの入力が可能です。
複数のテキストボックスを配置しよう
Tkinterでは、ひとつのウィンドウに複数のテキストボックスを配置できます。以下は配置のためのサンプルコードです。
import tkinter as tk # GUIの土台を作る root = tk.Tk() # 最初のテキストボックスの作成 text_box1 = tk.Entry(root) text_box1.pack() # 2つ目のテキストボックスの作成 text_box2 = tk.Entry(root) text_box2.pack() # GUIのループ root.mainloop()
このコードでは、2つのテキストボックスtext_box1とtext_box2を作成しています。それぞれtk.Entry(root)を使って作成し、pack()メソッドでウィンドウ内に配置しています。これにより、同じウィンドウ上に複数のテキストボックスが配置されるのです。
PythonのTkinterでボタンやボックスなどを配置する方法

「Python」のTkinterを利用すると、GUIのさまざまな要素を簡単に配置できます。ここからは、Tkinterの中でもとくに使用頻度の高いボタンやボックスに焦点を当てて解説します。
- ボタンを配置しよう
- ラジオボタンを配置しよう
- チェックボタンを配置しよう
- スピンボックスを配置しよう
- メニューを配置しよう
これらの内容を通じてボタンやボックスの配置方法を学び、TkinterでのGUI開発において多彩なインターフェースを設計できるようになりましょう。
ボタンを配置しよう
まずはTkinterを使って、「Python」のGUI画面にボタンを配置する方法を見ていきます。以下がサンプルコードです。
import tkinter as tk # ウィンドウの作成 window = tk.Tk() # ボタンの作成 button = tk.Button(window, text="クリックしてください", command=lambda: print("ボタンがクリックされました")) # ボタンをウィンドウに配置 button.pack() # ウィンドウを表示 window.mainloop()
tk.Button 関数を使ってボタンを作り、text引数でボタンのラベルを設定します。command 引数は、ボタンがクリックされたときに実行する関数を指定するものです。最後に、button.pack()でボタンをウィンドウに配置しています。
ラジオボタンを配置しよう
Tkinterを使って、画面上にラジオボタンを配置する手法を解説します。
import tkinter as tk # ウィンドウの作成 window = tk.Tk() # 変数の作成 selected_option = tk.StringVar() # ラジオボタンの作成 radio1 = tk.Radiobutton(window, text="オプション1", variable=selected_option, value="1") radio2 = tk.Radiobutton(window, text="オプション2", variable=selected_option, value="2") # ラジオボタンをウィンドウに配置 radio1.pack() radio2.pack() # ウィンドウを表示 window.mainloop()
tk.Radiobutton関数を使用してラジオボタンを作成し、text引数で表示するテキスト、variable引数で選択肢に関連付ける変数、value引数でその選択肢の値を設定します。
チェックボタンを配置しよう
Tkinterを用いて、画面上にチェックボタンを配置する方法を解説します。チェックボタンは、ユーザーが複数の選択肢から任意の数を選べるUIコンポーネントです。
import tkinter as tk # ウィンドウの作成 window = tk.Tk() # 変数の作成 check_var1 = tk.IntVar() check_var2 = tk.IntVar() # チェックボタンの作成 check_button1 = tk.Checkbutton(window, text="オプション1", variable=check_var1) check_button2 = tk.Checkbutton(window, text="オプション2", variable=check_var2) # チェックボタンをウィンドウに配置 check_button1.pack() check_button2.pack() # ウィンドウを表示 window.mainloop()
このサンプルコードを実行して、実際にチェックボタンを作成してみましょう。
スピンボックスを配置しよう
Tkinterでのスピンボックスの配置について解説します。スピンボックスは、ユーザーが上下矢印をクリックして数値やリストの要素を選択できるウィジェットです。
import tkinter as tk # ウィンドウの作成 window = tk.Tk() # スピンボックスの作成 spinbox = tk.Spinbox(window, from_=0, to=10) # スピンボックスをウィンドウに配置 spinbox.pack() # ウィンドウを表示 window.mainloop()
このコードでは、tk.Spinbox関数を使ってスピンボックスを作成し、from_とto引数でスピンボックスの範囲を設定しています。これにより、ユーザーは0から10の間の数値を選択できます。
メニューを配置しよう
次にTkinterでのメニューの配置について解説します。以下がそのサンプルコードです。
import tkinter as tk # ウィンドウの作成 window = tk.Tk() # メニューバーの作成 menu_bar = tk.Menu(window) # Fileメニューの作成 file_menu = tk.Menu(menu_bar, tearoff=0) file_menu.add_command(label="Open") file_menu.add_command(label="Save") # Fileメニューをメニューバーに追加 menu_bar.add_cascade(label="File", menu=file_menu) # メニューバーをウィンドウに配置 window.config(menu=menu_bar) # ウィンドウを表示 window.mainloop()
このコードでは、Tkinterウィンドウを作成し、メニューバーを作成します。次に、「File」メニューを作成し、「Open」および「Save」のコマンドを追加します。
PythonのTkinterで画面を作成する際の便利な方法

この章では、Tkinterを利用するうえで知っておくと便利な以下の2つの方法を紹介します。
- 前の画面から別の画面へのスムーズな移動方法
- 値をラベルに表示させる際の洗練された手法
前の画面から別の画面へ移動させる
Tkinterで画面遷移を実現するには、新しいウィンドウを生成して操作を切り替えます。以下のコードは、ボタンをクリックして新しい画面を開くコードの例です。
import tkinter as tk def open_new_window(): def close_window(): new_window.destroy() new_window = tk.Tk() new_window.geometry('300x200') new_window.title('新しい画面') return_button = tk.Button(new_window, text='前の画面に戻る', command=close_window) return_button.pack() new_window.mainloop() main_window = tk.Tk() main_window.geometry('300x200') main_window.title('元の画面') open_button = tk.Button(main_window, text='新しい画面を開く', command=open_new_window) open_button.place(x=100, y=80) main_window.mainloop()
このコードでは、open_new_window関数が新しい画面を生成し、その中に「前の画面に戻る」ボタンを配置しています。これにより、画面の遷移が可能になります。
値をラベルに表示させる
Tkinterでユーザーが入力した値をラベルに表示するために、テキストボックスとボタンを使用します。以下は、値をラベルに表示させるPythonのコードの例です。
import tkinter as tk def display_value(): # テキストボックスから値を取得 entered_text = text_box.get() # ラベルに値を表示 output_label['text'] = entered_text root = tk.Tk() root.geometry('300x200') root.title('値をラベルに表示') # テキストボックスの配置 text_box = tk.Entry(root) text_box.pack() # ボタンの配置 button = tk.Button(root, text="表示", command=display_value) button.pack() # ラベルの配置 output_label = tk.Label(root) output_label.pack() root.mainloop()
このようにして、値をラベルに表示させることが可能となります。
PythonのTkinterで簡単にGUIアプリを作成しよう

本記事では、サンプルコードを紹介しながら「Python」のTkinterの基本的な概要から、その具体的なインストール方法、そして実際の使用法について解説しました。
本記事を参考に、Tkinterを活用した「Python」でのGUI開発をさらに磨き、高度なアプリケーションを作成してみましょう。