初心者でもPythonを使ってみよう

趣味と実益を兼ねたPython学習記

【スポンサーリンク】



tkinter.ttk Notebookの使い方 Python

tkinter.ttkで利用できるNotebookの使い方を、実際にコードを書きながらまとめました。

目次

Notebookの概要

Notebookは複数のウィンドウをタブで管理するためのウィジェットです。

一つのウィンドウにたくさんの情報を詰め込みすぎると、ウィンドウサイズが大きくなってしまいますし、使いづらいですが、Notebookをうまくタブを使って情報を整理してあげると、ユーザーフレンドリーなアプリにすることができそうです。

実際にコードを書いて、動作を確認します。

テストアプリの概要

とても単純ですが、動作確認用にタブを使ってテキストボックスの画面とボタンの画面を切り替えるアプリを作ってみます。

以下が、完成したアプリの画面です。

f:id:vigilantPotato:20190106145121j:plain

「Text」タブと「Button」タブが作成されていて、現在は「Text」タブのテキストボックスが表示されています。

「Button」のタブをクリックすると、以下の画面に切り替わります。

f:id:vigilantPotato:20190106145206j:plain

画面が「Button」タブに切り替わり、ボタンが表示されました。

テストアプリのコード

動作確認用アプリのコードを以下に示します。非常に短いです。

import tkinter
from tkinter import ttk

class TestNotebook(ttk.Notebook):
    def __init__(self, master=None):
        super().__init__(master)
        f1 = tkinter.Text(self)
        f2 = tkinter.Button(self, text="Button")
        self.add(f1, text="Text")
        self.add(f2, text="Button")


if __name__ == "__main__":
    root = tkinter.Tk()
    f = TestNotebook(master=root)
    f.pack()
    root.mainloop()

「ttk.Notebook」クラスを継承させた「TestNotebook」クラス。

まず最初に、タブ内に表示させるウィジェットを生成しています。 「f1」がテキストボックスウィジェット、「f2」がボタンウィジェットです。

次に、タブを生成していきます。

タブは、「add」メソッドで追加することができます。引数としてタブ内に表示させるウィジェットと、「text」オプションでタブ部に表示するテキストを渡します。

複数のウィジェットを渡したい場合は、それらを「Frame」ウィジェットや「LabelFrame」ウィジェットでまとめた後、「add」メソッドに渡してあげればOKです。

今回はタブを作成するだけのアプリを作ってみましたが、.forgetでタブの削除も簡単にできます。 また、タブを選択したときには仮想イベント<<NotebookTabChanged>>が生成されるので、.bindを用いてメソッドと紐づけることも可能です。

tkinter.ttkの、Notebookの使い方を簡単にまとめました。 画面の整理にとても有用なので、積極的に使っていきたいと思います。