[Python Tkinter] タブ(Notebook)の使い方
PythonのTkinterライブラリでタブを作成するには、ttk.Notebook
ウィジェットを使用します。
Notebook
は複数のタブを持つウィジェットで、各タブに異なるウィジェットを配置できます。
まず、ttk.Notebook
を作成し、次にadd()メソッド
を使ってタブを追加します。
タブの内容は通常、Frame
ウィジェットに配置されます。
タブの切り替えは自動的に行われ、ユーザーがクリックすることで異なるタブに移動できます。
Tkinterでタブを作成する基本
Tkinterとは
Tkinterは、Pythonに標準で搭載されているGUI(グラフィカルユーザーインターフェース)ライブラリです。
Tkinterを使用することで、ウィンドウ、ボタン、ラベル、テキストボックスなどのウィジェットを簡単に作成し、ユーザーと対話するアプリケーションを構築できます。
Tkinterは、クロスプラットフォームで動作し、Windows、macOS、Linuxなどの環境で利用可能です。
ttk.Notebookとは
ttk.Notebook
は、Tkinterのttk
モジュールに含まれるウィジェットで、タブ形式のインターフェースを提供します。
これにより、複数のページをタブで切り替えながら表示することができ、ユーザーが情報を整理して閲覧しやすくなります。
タブは、各ページに異なるウィジェットを配置することができ、アプリケーションの使い勝手を向上させます。
ttk.Notebookの基本的な使い方
ttk.Notebook
を使用するには、まずTkinterとttkモジュールをインポートし、Notebookウィジェットを作成します。
以下は、基本的な使い方のサンプルコードです。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# メインループの開始
root.mainloop()
このコードを実行すると、2つのタブを持つウィンドウが表示されます。
タブをクリックすることで、異なるページに切り替えることができます。
タブにウィジェットを追加する方法
タブにウィジェットを追加するには、各タブのフレームにウィジェットを配置します。
以下のサンプルコードでは、各タブにラベルを追加しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブのウィジェット追加例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブ1にウィジェットを追加
label1 = ttk.Label(tab1, text="これはタブ1です")
label1.pack(pady=20)
# タブ2にウィジェットを追加
label2 = ttk.Label(tab2, text="これはタブ2です")
label2.pack(pady=20)
# メインループの開始
root.mainloop()
このコードを実行すると、各タブに異なるラベルが表示されます。
タブの切り替え方法
タブの切り替えは、ユーザーがタブをクリックすることで自動的に行われますが、プログラムからも切り替えることができます。
以下のサンプルコードでは、ボタンをクリックすることで特定のタブに切り替える方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの切り替え例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブ1にウィジェットを追加
label1 = ttk.Label(tab1, text="これはタブ1です")
label1.pack(pady=20)
# タブ2にウィジェットを追加
label2 = ttk.Label(tab2, text="これはタブ2です")
label2.pack(pady=20)
# タブを切り替える関数
def switch_to_tab2():
notebook.select(tab2)
# ボタンを作成
button = ttk.Button(root, text="タブ2に切り替え", command=switch_to_tab2)
button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、ボタンをクリックすることでタブ2に切り替わります。
タブのカスタマイズ
タブのラベルを変更する
タブのラベルは、notebook
ウィジェットのtabメソッド
を使用して変更できます。
以下のサンプルコードでは、タブのラベルを変更する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブのラベル変更例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブ1のラベルを変更
notebook.tab(tab1, text='新しいタブ1のラベル')
# メインループの開始
root.mainloop()
このコードを実行すると、タブ1のラベルが「新しいタブ1のラベル」に変更されます。
タブのアイコンを設定する
タブにアイコンを設定するには、image
オプションを使用します。
以下のサンプルコードでは、タブにアイコンを追加する方法を示しています。
アイコンは、TkinterのPhotoImage
を使用して作成します。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブのアイコン設定例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# アイコンの作成
icon1 = tk.PhotoImage(file='icon1.png') # アイコン画像のパスを指定
icon2 = tk.PhotoImage(file='icon2.png') # アイコン画像のパスを指定
# タブに名前とアイコンを付ける
notebook.add(tab1, text='タブ1', image=icon1, compound='left')
notebook.add(tab2, text='タブ2', image=icon2, compound='left')
# メインループの開始
root.mainloop()
このコードを実行すると、タブに指定したアイコンが表示されます。
compound
オプションを使用することで、テキストとアイコンの配置を調整できます。
タブの順序を変更する
タブの順序を変更するには、insertメソッド
を使用してタブを特定の位置に挿入します。
以下のサンプルコードでは、タブの順序を変更する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの順序変更例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
tab3 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
notebook.add(tab3, text='タブ3')
# タブ2をタブ1の前に移動
notebook.forget(tab2) # 一旦タブを非表示にする
notebook.insert(0, tab2, text='タブ2') # タブ1の前に挿入
# メインループの開始
root.mainloop()
このコードを実行すると、タブ2がタブ1の前に移動します。
タブのスタイルをカスタマイズする
タブのスタイルは、ttk.Style
を使用してカスタマイズできます。
以下のサンプルコードでは、タブの背景色やフォントを変更する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブのスタイルカスタマイズ例")
# スタイルの作成
style = ttk.Style()
style.configure("TNotebook.Tab", background="lightblue", padding=10)
style.map("TNotebook.Tab", background=[("selected", "blue")])
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# メインループの開始
root.mainloop()
このコードを実行すると、タブの背景色が変更され、選択されたタブの色も異なるものになります。
タブを非表示にする方法
タブを非表示にするには、forgetメソッド
を使用します。
以下のサンプルコードでは、特定のタブを非表示にする方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの非表示例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブ2を非表示にする
notebook.forget(tab2)
# メインループの開始
root.mainloop()
このコードを実行すると、タブ2が非表示になります。
非表示にしただけで削除はしていないため、addメソッド
を使用して再表示することが可能です。
タブのイベント処理
タブが選択されたときのイベントを処理する
タブが選択されたときのイベントを処理するには、<<Notebook.TabChanged>>
イベントをバインドします。
以下のサンプルコードでは、タブが選択されたときにメッセージを表示する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブ選択イベント例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブが選択されたときのイベント処理
def on_tab_change(event):
selected_tab = notebook.tab(notebook.select(), "text")
print(f"選択されたタブ: {selected_tab}")
# イベントをバインド
notebook.bind("<<Notebook.TabChanged>>", on_tab_change)
# メインループの開始
root.mainloop()
このコードを実行すると、タブを切り替えるたびに選択されたタブの名前がコンソールに表示されます。
タブが閉じられたときのイベントを処理する
ttk.Notebook
にはタブを閉じる機能がデフォルトで備わっていませんが、タブを閉じるボタンを自分で作成し、そのボタンがクリックされたときにタブを閉じる処理を行うことができます。
以下のサンプルコードでは、タブを閉じるボタンを作成し、クリックされたときにタブを削除する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブ閉じるイベント例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブを閉じる関数
def close_tab():
current_tab = notebook.select()
notebook.forget(current_tab)
print("タブが閉じられました。")
# 閉じるボタンの作成
close_button = ttk.Button(root, text="タブを閉じる", command=close_tab)
close_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、ボタンをクリックすることで現在選択されているタブが閉じられます。
タブの状態を取得する方法
タブの状態を取得するには、notebook.indexメソッド
を使用して現在選択されているタブのインデックスを取得できます。
以下のサンプルコードでは、選択されているタブのインデックスを表示する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの状態取得例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブの状態を取得する関数
def get_current_tab_index():
current_index = notebook.index(notebook.select())
print(f"現在のタブインデックス: {current_index}")
# ボタンを作成
index_button = ttk.Button(root, text="現在のタブインデックスを表示", command=get_current_tab_index)
index_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、ボタンをクリックすることで現在選択されているタブのインデックスが表示されます。
タブの状態を変更する方法
タブの状態を変更するには、notebook.tabメソッド
を使用してタブのプロパティを変更できます。
以下のサンプルコードでは、タブのラベルを変更する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの状態変更例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブの状態を変更する関数
def change_tab_label():
notebook.tab(tab1, text='変更されたタブ1のラベル')
print("タブ1のラベルが変更されました。")
# ボタンを作成
change_button = ttk.Button(root, text="タブ1のラベルを変更", command=change_tab_label)
change_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、ボタンをクリックすることでタブ1のラベルが変更されます。
タブの動的な操作
タブを動的に追加する方法
タブを動的に追加するには、addメソッド
を使用します。
以下のサンプルコードでは、ボタンをクリックすることで新しいタブを追加する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの動的追加例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブを追加する関数
def add_tab():
new_tab = ttk.Frame(notebook)
tab_index = notebook.index("end") # 新しいタブのインデックスを取得
notebook.add(new_tab, text=f'タブ{tab_index + 1}') # タブを追加
label = ttk.Label(new_tab, text=f"これはタブ{tab_index + 1}です")
label.pack(pady=20)
# タブ追加ボタンの作成
add_button = ttk.Button(root, text="タブを追加", command=add_tab)
add_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、「タブを追加」ボタンをクリックすることで新しいタブが追加されます。
タブを動的に削除する方法
タブを動的に削除するには、forgetメソッド
を使用します。
以下のサンプルコードでは、ボタンをクリックすることで現在選択されているタブを削除する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの動的削除例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブを削除する関数
def remove_tab():
current_tab = notebook.select() # 現在選択されているタブを取得
notebook.forget(current_tab) # タブを削除
print("タブが削除されました。")
# タブ削除ボタンの作成
remove_button = ttk.Button(root, text="タブを削除", command=remove_tab)
remove_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、「タブを削除」ボタンをクリックすることで現在選択されているタブが削除されます。
タブの内容を動的に変更する方法
タブの内容を動的に変更するには、タブ内のウィジェットを更新することができます。
以下のサンプルコードでは、ボタンをクリックすることでタブ1のラベルを変更する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの内容動的変更例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブ1にラベルを追加
label1 = ttk.Label(tab1, text="これはタブ1です")
label1.pack(pady=20)
# タブの内容を変更する関数
def change_tab_content():
label1.config(text="タブ1の内容が変更されました。")
print("タブ1の内容が変更されました。")
# 内容変更ボタンの作成
change_button = ttk.Button(root, text="タブ1の内容を変更", command=change_tab_content)
change_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、「タブ1の内容を変更」ボタンをクリックすることでタブ1のラベルが変更されます。
タブの順序を動的に変更する方法
タブの順序を動的に変更するには、insertメソッド
を使用してタブを特定の位置に挿入します。
以下のサンプルコードでは、ボタンをクリックすることでタブの順序を変更する方法を示しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("タブの順序動的変更例")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
tab1 = ttk.Frame(notebook)
tab2 = ttk.Frame(notebook)
notebook.add(tab1, text='タブ1')
notebook.add(tab2, text='タブ2')
# タブの順序を変更する関数
def change_tab_order():
notebook.forget(tab2) # タブ2を一旦非表示にする
notebook.insert(0, tab2, text='タブ2') # タブ1の前に挿入
print("タブ2の順序が変更されました。")
# 順序変更ボタンの作成
order_button = ttk.Button(root, text="タブ2の順序を変更", command=change_tab_order)
order_button.pack(pady=10)
# メインループの開始
root.mainloop()
このコードを実行すると、「タブ2の順序を変更」ボタンをクリックすることでタブ2がタブ1の前に移動します。
応用例
タブを使った設定画面の作成
タブを使った設定画面では、ユーザーが異なる設定項目を簡単に切り替えながら変更できるようにします。
以下のサンプルコードでは、一般設定、表示設定、通知設定の3つのタブを持つ設定画面を作成しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("設定画面")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
general_tab = ttk.Frame(notebook)
display_tab = ttk.Frame(notebook)
notification_tab = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(general_tab, text='一般設定')
notebook.add(display_tab, text='表示設定')
notebook.add(notification_tab, text='通知設定')
# 一般設定タブの内容
ttk.Label(general_tab, text="ユーザー名:").pack(pady=10)
ttk.Entry(general_tab).pack(pady=5)
# 表示設定タブの内容
ttk.Label(display_tab, text="テーマ:").pack(pady=10)
ttk.Combobox(display_tab, values=["ライト", "ダーク"]).pack(pady=5)
# 通知設定タブの内容
ttk.Label(notification_tab, text="通知を受け取る:").pack(pady=10)
ttk.Checkbutton(notification_tab, text="メール通知").pack(pady=5)
ttk.Checkbutton(notification_tab, text="SMS通知").pack(pady=5)
# メインループの開始
root.mainloop()
このコードを実行すると、3つのタブを持つ設定画面が表示され、各タブで異なる設定を行うことができます。
タブを使った複数ページのアプリケーション
タブを使った複数ページのアプリケーションでは、異なる機能や情報をタブで整理して表示します。
以下のサンプルコードでは、ホーム、プロフィール、設定の3つのタブを持つアプリケーションを作成しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("複数ページアプリケーション")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
home_tab = ttk.Frame(notebook)
profile_tab = ttk.Frame(notebook)
settings_tab = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(home_tab, text='ホーム')
notebook.add(profile_tab, text='プロフィール')
notebook.add(settings_tab, text='設定')
# ホームタブの内容
ttk.Label(home_tab, text="ようこそ!").pack(pady=20)
# プロフィールタブの内容
ttk.Label(profile_tab, text="ユーザー名:").pack(pady=10)
ttk.Entry(profile_tab).pack(pady=5)
# 設定タブの内容
ttk.Label(settings_tab, text="設定を変更してください。").pack(pady=20)
# メインループの開始
root.mainloop()
このコードを実行すると、異なる機能を持つ3つのタブが表示され、ユーザーは簡単にページを切り替えることができます。
タブを使ったデータ表示アプリケーション
タブを使ったデータ表示アプリケーションでは、異なるデータセットをタブで整理して表示します。
以下のサンプルコードでは、顧客データ、製品データ、注文データの3つのタブを持つアプリケーションを作成しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("データ表示アプリケーション")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
customer_tab = ttk.Frame(notebook)
product_tab = ttk.Frame(notebook)
order_tab = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(customer_tab, text='顧客データ')
notebook.add(product_tab, text='製品データ')
notebook.add(order_tab, text='注文データ')
# 顧客データタブの内容
ttk.Label(customer_tab, text="顧客リスト").pack(pady=20)
ttk.Treeview(customer_tab, columns=("名前", "メール"), show='headings').pack()
# 製品データタブの内容
ttk.Label(product_tab, text="製品リスト").pack(pady=20)
ttk.Treeview(product_tab, columns=("製品名", "価格"), show='headings').pack()
# 注文データタブの内容
ttk.Label(order_tab, text="注文リスト").pack(pady=20)
ttk.Treeview(order_tab, columns=("注文ID", "顧客名"), show='headings').pack()
# メインループの開始
root.mainloop()
このコードを実行すると、異なるデータセットを表示するためのタブが作成され、ユーザーは簡単にデータを切り替えて確認できます。
タブを使ったフォーム入力画面
タブを使ったフォーム入力画面では、異なる情報をタブで整理して入力できるようにします。
以下のサンプルコードでは、個人情報、連絡先情報、その他の情報の3つのタブを持つフォームを作成しています。
import tkinter as tk
from tkinter import ttk
# メインウィンドウの作成
root = tk.Tk()
root.title("フォーム入力画面")
# Notebookウィジェットの作成
notebook = ttk.Notebook(root)
notebook.pack(fill='both', expand=True)
# タブの作成
personal_info_tab = ttk.Frame(notebook)
contact_info_tab = ttk.Frame(notebook)
other_info_tab = ttk.Frame(notebook)
# タブに名前を付ける
notebook.add(personal_info_tab, text='個人情報')
notebook.add(contact_info_tab, text='連絡先情報')
notebook.add(other_info_tab, text='その他の情報')
# 個人情報タブの内容
ttk.Label(personal_info_tab, text="名前:").pack(pady=10)
ttk.Entry(personal_info_tab).pack(pady=5)
ttk.Label(personal_info_tab, text="年齢:").pack(pady=10)
ttk.Entry(personal_info_tab).pack(pady=5)
# 連絡先情報タブの内容
ttk.Label(contact_info_tab, text="電話番号:").pack(pady=10)
ttk.Entry(contact_info_tab).pack(pady=5)
ttk.Label(contact_info_tab, text="メールアドレス:").pack(pady=10)
ttk.Entry(contact_info_tab).pack(pady=5)
# その他の情報タブの内容
ttk.Label(other_info_tab, text="備考:").pack(pady=10)
ttk.Entry(other_info_tab).pack(pady=5)
# メインループの開始
root.mainloop()
このコードを実行すると、異なる情報を入力するためのタブが作成され、ユーザーは簡単に情報を整理して入力できます。
まとめ
この記事では、PythonのTkinterを使用してタブ(Notebook)を作成し、カスタマイズやイベント処理、動的な操作の方法について詳しく解説しました。
タブを利用することで、ユーザーインターフェースを整理し、情報を効率的に表示することが可能になります。
これを機に、実際のアプリケーションにタブ機能を取り入れて、より使いやすいインターフェースを実現してみてください。