【6日でできるPython入門】Tkinterとは

 Tkinterは、Python標準搭載のGUI(グラフィカルユーザーインターフェース)ライブラリです。
Pythonでデスクトップアプリケーションを作るとき、追加インストールなしで使え、初心者から上級者まで幅広く利用されています。

項目内容
概要Python標準のGUI(グラフィカルユーザーインターフェース)ライブラリ。
由来「Tkinter」は「Tk interface」の略。Tcl/TkというツールキットをPythonから使うためのもの。
特徴- Pythonに標準で付属(追加インストール不要)- クロスプラットフォーム(Windows, macOS, Linuxで動作)- 簡単なGUIアプリ作成に最適
主な用途ボタン、ラベル、テキスト入力、リスト、メニューなど、基本的なデスクトップアプリ作成

Tkinterの基本的な使い方

1.インストール

  • Windows/macOS:通常はそのまま使えます。
  • Linuxpython3-tkパッケージが必要な場合があります。
    例:sudo apt install python3-tk

2.基本の流れ(サンプル付き)

1. インポート

import tkinter as tk

2. ウィンドウの作成

root = tk.Tk()            # メインウィンドウ作成
root.title("サンプルアプリ")   # タイトル
root.geometry("300x200")     # サイズ指定

3. ウィジェットの作成と配置

label = tk.Label(root, text="Hello, Tkinter!")  # ラベル
label.pack()                                    # 配置

button = tk.Button(root, text="クリックしてね")  # ボタン
button.pack()                                   # 配置
配置方法まとめ
  • pack(): 上下/左右に順番に配置
  • grid(): 表のように行・列で配置
  • place(): 座標指定で配置

4. イベント処理(コールバック関数)

def on_click():
    label.config(text="ボタンが押されました!")

button = tk.Button(root, text="クリック", command=on_click)
button.pack()

5. メインループ開始

root.mainloop()

最小限のサンプルプログラム

ファイル名: lesson28-1.py

import tkinter as tk

def on_click():
    label.config(text="ボタンが押されました!")

root = tk.Tk()
root.title("Tkinter基本サンプル")
root.geometry("300x200")

label = tk.Label(root, text="Hello, Tkinter!")
label.pack()

button = tk.Button(root, text="クリック", command=on_click)
button.pack()

root.mainloop()

実行画面

ポイント

ステップコード例説明
1. インポートimport tkinter as tkTkinterライブラリの読み込み。
2. ウィンドウ作成root = tk.Tk()メインウィンドウを生成
3. ウィジェット作成Label, Buttonなど部品の作成
4. 配置.pack(), .grid()ウィジェットをウィンドウに配置
5. イベント処理command=関数名ボタン等の操作時に実行
6. メインループroot.mainloop()アプリを実行し続ける。

Tkinterで作る簡単なアプリ例

ファイル名: lesson28-2.py

import tkinter as tk

def greet():
    name = entry.get()
    label.config(text=f"こんにちは、{name}さん!")

root = tk.Tk()
root.title("挨拶アプリ")
root.geometry("320x120")

entry = tk.Entry(root)
entry.pack()

button = tk.Button(root, text="あいさつ", command=greet)
button.pack()

label = tk.Label(root, text="")
label.pack()

root.mainloop()

実行画面

はい、Tkinterで使える主な部品(ウィジェット)と、部品の配置方法について分かりやすく解説します。


Tkinterで使える主な部品(ウィジェット)

Tkinterには「ウィジェット」と呼ばれる部品が多数用意されています。
下記の表に、よく使う代表的なウィジェットとその用途をまとめます。

ウィジェット名機能・用途サンプルコード例
Label文字や画像などを表示tk.Label(root, text="ラベル")
Buttonボタン。クリックでイベント処理tk.Button(root, text="ボタン")
Entry1行のテキスト入力欄tk.Entry(root)
Text複数行のテキスト入力欄tk.Text(root)
Checkbuttonチェックボックスtk.Checkbutton(root, text="同意する")
Radiobuttonラジオボタン(選択肢の中から1つ選択)tk.Radiobutton(root, text="A", value=1)
Listboxリストから複数項目を選択tk.Listbox(root)
Scaleスライダーで数値を調整tk.Scale(root, from_=0, to=100)
Spinbox数値や項目をスピンボックスで選択tk.Spinbox(root, from_=0, to=10)
Canvas線や図形、画像などを自由に描画できる領域tk.Canvas(root, width=200, height=100)
Frameウィジェットをグループ化するコンテナtk.Frame(root)
Menuメニューバーやプルダウンメニューを作成tk.Menu(root)
Message複数行のテキストメッセージ表示tk.Message(root, text="メッセージ")
Scrollbarスクロールバーtk.Scrollbar(root)

部品(ウィジェット)の配置方法

Tkinterには主に3つの配置方法があります。
それぞれの特徴と使い方を表でまとめます。

配置方法使い方例特徴・ポイント
pack()widget.pack()ウィジェットを上下・左右方向に順番に並べる。シンプルで簡単。
grid()widget.grid(row=0, column=0)ウィジェットを表(グリッド)のように、行・列で配置。フォーム画面などで便利。
place()widget.place(x=10, y=20)x, y座標(ピクセル単位)で絶対位置に配置。細かいレイアウト制御に使う。

簡単な使い分け

  • pack():基本の自動並び。簡単なレイアウトに向いている。
  • grid():行・列で表のように配置したいとき。
  • place():細かく位置を指定したい場合。

配置方法のサンプルコード

pack() の例

label = tk.Label(root, text="上に配置")
label.pack(side="top")

button = tk.Button(root, text="下に配置")
button.pack(side="bottom")

grid() の例

label1 = tk.Label(root, text="名前")
label1.grid(row=0, column=0)

entry1 = tk.Entry(root)
entry1.grid(row=0, column=1)

label2 = tk.Label(root, text="パスワード")
label2.grid(row=1, column=0)

entry2 = tk.Entry(root, show="*")
entry2.grid(row=1, column=1)

place() の例

label = tk.Label(root, text="左上(10,20)に表示")
label.place(x=10, y=20)

ポイント

  • Tkinterには多数の部品(ウィジェット)があり、GUIアプリの様々な機能を作れる
  • 配置方法は主にpack, grid, placeの3種類
  • 目的や画面レイアウトに応じて適切な方法を選ぶのがポイント!

まとめ

Tkinterを使えば、Pythonだけで簡単にデスクトップアプリが作れます
気軽にいろいろ組み合わせて、オリジナルのGUIアプリを作ってみてください。