Python/標準モジュール/Tkinter

出典: フリー教科書『ウィキブックス(Wikibooks)』

Tkinter[編集]

TkinterはPythonの標準GUI(グラフィカルユーザーインターフェース)ツールキットであり、簡単かつ直感的な方法でデスクトップアプリケーションを作成するための便利なライブラリです。

インストール[編集]

TkinterはPythonの標準ライブラリであるため、追加のインストールは必要ありません。Pythonをインストールすると、自動的にTkinterも使用できるようになります。

コードの例[編集]

以下に、Tkinterを使用してシンプルなウィンドウを作成するための基本的なコード例を示します。

import tkinter as tk

# ウィンドウの作成
window = tk.Tk()
window.title("こんにちは、Tkinter!")

# ラベルの作成
label = tk.Label(window, text="ようこそ!", font=("Helvetica", 16))
label.pack(pady=10)

# ボタンの作成
button = tk.Button(window, text="クリックしてください", command=lambda: label.config(text="ボタンがクリックされました!"))
button.pack()

# ウィンドウの表示
window.mainloop()

このコードでは、Tkinterをインポートし、ウィンドウ、ラベル、ボタンなどのウィジェットを作成しています。window.mainloop()メソッドは、ウィンドウを表示し、ユーザーのアクションを待ちます。

この例では、ウィンドウが表示されると、「ようこそ!」というテキストが表示され、ボタンをクリックするとテキストが「ボタンがクリックされました!」に変更されます。


ウィジェット[編集]

Tkinterでは、さまざまな種類のウィジェットを使用できます。以下は、ボタンとラベルの作成例です。

ボタン[編集]

ボタンを作成するには、Buttonクラスを使用します。

import tkinter as tk

# ルートウィンドウの作成
root = tk.Tk()

# ボタンの作成と配置
button = tk.Button(root, text="クリックしてください")
button.pack()

# イベントループの開始
root.mainloop()

ラベル[編集]

ラベルを作成するには、Labelクラスを使用します。

import tkinter as tk

# ルートウィンドウの作成
root = tk.Tk()

# ラベルの作成と配置
label = tk.Label(root, text="こんにちは、世界!")
label.pack()

# イベントループの開始
root.mainloop()

イベント処理[編集]

Tkinterでは、ウィジェット上で発生するイベントを処理することができます。以下は、ボタンクリック時にメッセージを表示する例です。

import tkinter as tk

# ルートウィンドウの作成
root = tk.Tk()

# ボタンクリック時の処理
def button_click():
    print("ボタンがクリックされました")

# ボタンの作成と配置
button = tk.Button(root, text="クリックしてください", command=button_click)
button.pack()

# イベントループの開始
root.mainloop()

レイアウト管理[編集]

Tkinterでは、ウィジェットの配置やサイズ調整を行うためのレイアウトマネージャを使用できます。以下は、グリッドマネージャを使ったウィジェットの配置例です。

import tkinter as tk

# ルートウィンドウの作成
root = tk.Tk()

# ウィジェットの作成
label1 = tk.Label(root, text="ラベル1")
label2 = tk.Label(root, text="ラベル2")
button = tk.Button(root, text="ボタン")

# グリッドマネージャを使用してウィジェットを配置
label1.grid(row=0, column=0)
label2.grid(row=0, column=1)
button.grid(row=1, columnspan=2)

# イベントループの開始
root.mainloop()

ダイアログ[編集]

Tkinterでは、さまざまな種類のダイアログを作成することができます。以下は、メッセージボックスの表示例です。

import tkinter as tk
from tkinter import messagebox

# ルートウィンドウの作成
root = tk.Tk()

# メッセージボックス表示時の処理
def show_message_box():
    messagebox.showinfo("メッセージ", "こんにちは、Tkinter!")

# ボタンの作成と配置
button = tk.Button(root, text="メッセージボックスを表示", command=show_message_box)
button.pack()

# イベントループの開始
root.mainloop()

グラフィックス描画[編集]

Tkinterでは、キャンバスを使用してグラフィックス描画を行うことができます。以下は、直線を描画する例です。

import tkinter as tk

# ルートウィンドウの作成
root = tk.Tk()

# キャンバスの作成と配置
canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()

# 直線の描画
canvas.create_line(0, 0, 400, 400)

# イベントループの開始
root.mainloop()

メニュー[編集]

Tkinterでは、メニューバーと各種メニューを作成することができます。以下は、メニューバーとドロップダウンメニューの例です。

import tkinter as tk

# メニューアイテム選択時の処理
def do_something():
    print("何か処理を実行します")

# ルートウィンドウの作成
root = tk.Tk()

# メニューバーの作成
menu_bar = tk.Menu(root)

# ファイルメニューの作成と配置
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="新規")
file_menu.add_command(label="開く")
file_menu.add_separator()
file_menu.add_command(label="終了", command=root.quit)
menu_bar.add_cascade(label="ファイル", menu=file_menu)

# 編集メニューの作成と配置
edit_menu = tk.Menu(menu_bar, tearoff=0)
edit_menu.add_command(label="切り取り")
edit_menu.add_command(label="コピー")
edit_menu.add_command(label="貼り付け")
menu_bar.add_cascade(label="編集", menu=edit_menu)

# メニューバーの設定
root.config(menu=menu_bar)

# イベントループの開始
root.mainloop()