Python GUI開発:Tkinter完全ガイド
Python GUI開発の選択肢
Pythonはグラフィカルユーザーインターフェース(GUI)開発のためのさまざまなオプションを提供します。最も重要なものは以下の通りです。
- Tkinter - Pythonに同梱されているTk GUIツールキットへのPythonインターフェース。この章でこのオプションを扱います。
- wxPython - wxWindows用のオープンソースPythonインターフェース https://wxpython.org
- JPython - JavaへのPython移植で、ローカルマシン上のJavaクラスライブラリへのシームレスなアクセスをPythonスクリプトに提供 https://www.jython.org
ネット上で見つけられる他にも多くのインターフェースがあります。
Tkinterプログラミング
TkinterはPythonの標準GUIライブラリです。PythonとTkinterを組み合わせると、GUIアプリケーションを高速かつ簡単に作成できます。TkinterはTk GUIツールキットへの強力なオブジェクト指向インターフェースを提供します。
Tkinterを使用したGUIアプリケーションの作成は簡単です。以下の手順を実行するだけです。
Tkinterモジュールをインポート- GUIアプリケーションのメインウィンドウを作成
- 上記のウィジェットを1つ以上GUIアプリケーションに追加
- ユーザーによってトリガーされる各イベントに対応するため、メインイベントループに入る
基本例
#!/usr/bin/python
import Tkinter
top = Tkinter.Tk() # メインウィンドウ作成
# ここにウィジェット追加のコード...
top.mainloop() # イベントループ開始
これにより以下のウィンドウが作成されます:

Tkinterウィジェット
Tkinterは、ボタン、ラベル、テキストボックスなど、GUIアプリケーションで使用されるさまざまなコントロールを提供します。これらのコントロールは一般的にウィジェットと呼ばれます。
現在、Tkinterには15種類のウィジェットがあります(実際にはさらに拡張されています)。これらのウィジェットと簡単な説明を以下の表にまとめます。
| No. | ウィジェットと説明 |
|---|---|
| 1 | Button - アプリケーションにボタンを表示 |
| 2 | Canvas - 線、楕円、多角形、長方形などの図形を描画 |
| 3 | Checkbutton - チェックボックスとして複数のオプションを表示。複数同時選択可能 |
| 4 | Entry - ユーザーからの値を受け入れる1行テキストフィールドを表示 |
| 5 | Frame - 他のウィジェットを整理するためのコンテナウィジェット |
| 6 | Label - 他のウィジェットの1行キャプションを提供。画像も含められる |
| 7 | Listbox - ユーザーにオプションのリストを提供 |
| 8 | Menubutton - アプリケーションにメニューを表示 |
| 9 | Menu - ユーザーにさまざまなコマンドを提供。Menubutton内に含まれる |
| 10 | Message - ユーザーからの値を受け入れる複数行テキストフィールドを表示 |
| 11 | Radiobutton - ラジオボタンとして複数のオプションを表示。一度に1つのみ選択可能 |
| 12 | Scale - スライダーウィジェットを提供 |
| 13 | Scrollbar - リストボックスなどさまざまなウィジェットにスクロール機能を追加 |
| 14 | Text - 複数行のテキストを表示 |
| 15 | Toplevel - 別のウィンドウコンテナを提供 |
| 16 | Spinbox - 標準Tkinter Entryウィジェットの変種。固定数の値から選択可能 |
| 17 | PanedWindow - 任意の数のペインを含むコンテナウィジェット。水平または垂直に配置可能 |
| 18 | LabelFrame - シンプルなコンテナウィジェット。主な目的はスペーサーや複雑なウィンドウレイアウトのコンテナとして機能 |
| 19 | tkMessageBox - アプリケーションにメッセージボックスを表示するモジュール |
これらのウィジェットを詳細に学習しましょう。
標準属性
サイズ、色、フォントなどの共通属性がどのように指定されるかを見てみましょう。
- 寸法
- 色
- フォント
- アンカー
- リリーフスタイル
- ビットマップ
- カーソル
これらを簡単に学習します。
ジオメトリ管理
すべてのTkinterウィジェットは、親ウィジェット領域全体でウィジェットを整理する目的を持つ特定のジオメトリ管理メソッドにアクセスできます。Tkinterは以下のジオメトリマネージャークラスを公開しています:pack、grid、place。
- pack()メソッド - このジオメトリマネージャーは、ウィジェットをブロックに整理してから親ウィジェットに配置
- grid()メソッド - このジオメトリマネージャーは、親ウィジェット内でテーブルのような構造でウィジェットを整理
- place()メソッド - このジオメトリマネージャーは、親ウィジェット内の特定の位置にウィジェットを配置して整理
ジオメトリ管理メソッドを簡単に学習します。
Python
- Python データ型マスター: 実践ガイド
- Python 演算子完全マスター: 包括的ガイド
- Python pass文完全マスター: 実践ガイド
- Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
- Python辞書完全ガイド:作成、操作、高度なテクニック
- Pythonオブジェクト指向プログラミング完全ガイド:クラス、継承、カプセル化、ポリモーフィズム
- Pythonイテレータ完全ガイド:仕組みと自作方法
- Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
- Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
- Pythonのtime.sleep()をマスター:ベストプラクティス、マルチスレッド、実例
- Pythonネットワークプログラミング:ソケットと高度なプロトコルをマスター