Tkinter超入門:PythonでGUIを作る基礎とCSVビューアの実例

python

はじめに

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ボタン
Entry1行テキスト入力
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連携)
  • ファイル管理ツール

を作ってみると良い練習になります。

タイトルとURLをコピーしました