はじめに
Python には GUI(グラフィカルユーザインターフェース)を作るための標準ライブラリ Tkinter があります。
インストール不要、Python を入れたらすぐに使えるのが大きな魅力です。
この記事では、Tkinter の初歩から各種設定の詳細を解説し、最後に「Excel風CSVビューア」を作る実例を紹介します。
1. Tkinterとは?
- Python 標準ライブラリの GUI ツールキット
- Tk という GUI フレームワークを Python から操作できるようにしたもの
- Windows / macOS / Linux で動作
- 軽量で学習コストが低く、初心者向け
Tkinterの特徴
- Python に標準で入っている(追加インストール不要)
- ウィンドウ・ボタン・テキスト入力など基本部品(ウィジェット)が揃っている
- 他のGUIライブラリ(PyQt, wxPythonなど)に比べてシンプル
2. 最小のTkinterプログラム
まずはウィンドウを開いてみましょう。
import tkinter as tk
root = tk.Tk() # メインウィンドウ作成
root.title("Hello Tkinter") # タイトル
root.geometry("400x300") # ウィンドウサイズ(幅x高さ)
root.mainloop() # イベントループ
実行すると、真っ白なウィンドウが表示されます。
これが Tkinter アプリの最小構成です。
3. Tkinterの基本構造
3.1 ウィンドウ
tk.Tk()
… メインウィンドウtitle("文字列")
… タイトルバーに文字を表示geometry("800x600")
… 初期サイズを指定
3.2 ウィジェット
Tkinter で使える主な部品(ウィジェット)は以下の通りです:
ウィジェット | 説明 |
---|---|
Label | テキスト表示 |
Button | ボタン |
Entry | 1行テキスト入力 |
Text | 複数行テキスト入力 |
Checkbutton | チェックボックス |
Radiobutton | ラジオボタン |
Frame | コンテナ(ウィジェットをまとめる箱) |
Canvas | 描画用キャンバス |
Treeview | 表形式のリスト(今回のCSV Viewerで使用) |
3.3 配置方法(レイアウトマネージャ)
ウィジェットは pack
, grid
, place
で配置します。
pack()
… 上下左右に詰めて配置(簡単)grid(row, column)
… 行・列指定で配置(表形式)place(x, y)
… 座標指定(細かい制御)
4. 各種設定の詳細
4.1 フォント
Tkinter では tkinter.font
を使ってフォントを指定できます。
import tkinter.font as tkfont
font = tkfont.Font(family="Arial", size=14, weight="bold")
label = tk.Label(root, text="Hello", font=font)
4.2 イベント(キーやマウス操作)
キー入力やクリックを処理するには bind
を使います。
def on_key(event):
print("押されたキー:", event.keysym)
root.bind("<Left>", on_key) # ←キーを押すと呼ばれる
4.3 スクロールバー
スクロールバーはウィジェットと「command」で双方向に接続します。
scroll = tk.Scrollbar(root, orient="vertical")
text = tk.Text(root, yscrollcommand=scroll.set)
scroll.config(command=text.yview)
5. 応用例:CSVビューアを作る
ここまでの基本を組み合わせて「Excel風のCSV Viewer」を作れます。
主な工夫は以下の通り:
Treeview
で表形式に表示- 左側に「行番号用Treeview」、右側に「データ用Treeview」を置いて同期
- サイドバーで列の表示/非表示を切り替え
- ヘッダークリックでソート(▲/▼を表示)
- ヘッダー右クリックでフィルタ(数値列は比較、文字列列はユニーク値)
- フォントサイズをショートカットで調整
→ 完成版コードは こちらの記事(第8章) に掲載しています。
6. まとめ
- Tkinter は Python 標準の GUI ライブラリで、学習コストが低い
- ウィジェット+レイアウト+イベント処理を理解すれば応用自在
- 今回の CSV Viewer で「ちょっとした業務ツール」を自作できることが分かります
👉 次のステップ:
- 入力フォーム(Entry+Button)を組み合わせたツール
- グラフ描画(Canvasやmatplotlib連携)
- ファイル管理ツール
を作ってみると良い練習になります。