※このページではアフィリエイト広告を利用しています

【Python応用】Tkinterでアプリ作成-Notebookの使用例まとめ-

Python

ここではTkinterの「Notebook」の使用例をまとめています。

この記事の対象

  • Tkinterでタブを使用したい方
  • TkinterでNotebookについて知りたい方
  • TkinterのNotebookの使用例を知りたい方
スポンサーリンク
スポンサーリンク

Notebookとは?

TkinterのNotebookは、複数のタブを持つことができるウィジェットになります。各タブは異なるコンテンツを表示することが可能です。タブを切り替えることで、異なる情報や機能にアクセスすることができます。

基本的な型

ttk.Notebook(root)

Notebook(root)はクラスをインスタンス化します。次に、各タブを作成し、Notebookに追加していきます。各タブには、タイトル(表示されるタブのテキスト)とコンテンツ(表示されるウィジェット)があります。

タブの作成

import tkinter as tk
from tkinter import ttk

#1---ウィンドウの作成
root = tk.Tk()
root.title("Tab Test")

#2---タブコンテナの作成
tab_control = ttk.Notebook(root)

#3---タブ1の作成
tab1 = ttk.Frame(tab_control)
tab_control.add(tab1, text='タブ1')

#4---タブ1のコンテンツ
label1 = tk.Label(tab1, text='これはタブ1のコンテンツです', padx=10, pady=10, font=('Arial', 14))
label1.pack(fill='both', expand=True)

#5---タブ2の作成
tab2 = ttk.Frame(tab_control)
tab_control.add(tab2, text='タブ2')

#6---タブ2のコンテンツ
label2 = tk.Label(tab2, text='これはタブ2のコンテンツです', padx=10, pady=10, font=('Arial', 14))
label2.pack(fill='both', expand=True)
label3 = tk.Label(tab2, text='これはタブ2のサブコンテンツです', padx=10, pady=10, font=('Arial', 12))
label3.pack(fill='both', expand=True)

#7---タブコンテナの配置
tab_control.pack(fill='both', expand=True)

#8---ウィンドウのメインループ
root.mainloop()

上記のプログラムは、タブを作成して、タブごとにラベルを配置しています。

以下は解説になります。

#1---ウィンドウの作成
root = tk.Tk()
root.title("Tab Test")

1の部分ではウィンドウを作成しています。

#2---タブコンテナの作成
tab_control = ttk.Notebook(root)

2の部分ではタブのコンテナを作成しています。「ttk.Notebook(root)」としてrootを引数に設定しています。

#3---タブ1の作成
tab1 = ttk.Frame(tab_control)
tab_control.add(tab1, text='タブ1')

3の部分では1つ目のタブを作成しています。

#4---タブ1のコンテンツ
label1 = tk.Label(tab1, text='これはタブ1のコンテンツです', padx=10, pady=10, font=('Arial', 14))
label1.pack(fill='both', expand=True)

4の部分では1つ目のタブ内のコンテンツであるラベルを配置しています。

#5---タブ2の作成
tab2 = ttk.Frame(tab_control)
tab_control.add(tab2, text='タブ2')

5の部分では2つ目のタブを作成しています。

#6---タブ2のコンテンツ
label2 = tk.Label(tab2, text='これはタブ2のコンテンツです', padx=10, pady=10, font=('Arial', 14))
label2.pack(fill='both', expand=True)
label3 = tk.Label(tab2, text='これはタブ2のサブコンテンツです', padx=10, pady=10, font=('Arial', 12))
label3.pack(fill='both', expand=True)

6の部分では2つ目のタブ内のコンテンツであるラベルを2つ作成しています。

#7---タブコンテナの配置
tab_control.pack(fill='both', expand=True)

7の部分ではタブのコンテナを配置しています。

#8---ウィンドウのメインループ
root.mainloop()

8の部分ではウィンドウのメインループを指定しています。

結果

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