【Python GUI tkinterサンプル】ttk.Notebookのタブ選択時にイベントを実行する
ttk.Notebookの仮想イベント
ttk.Notebookではタブを選択した後に呼び出されるイベントがある。
<<NotebookTabChanged>>
このイベントをttk.Notebookにbindしコールバック関数を登録することで、
タブが選択されるごとに特定の処理を実行できる。
※初回にも呼ばれるので要注意
サンプル画像
サンプルコード実行
初回
note1を選択
ラベルがnote1に変わる
サンプルコード
from tkinter import *
import tkinter.ttk as ttk
class NotebookEventSample(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.create_widgets()
self.pack()
def create_widgets(self):
note = ttk.Notebook(self)
note.pack()
self.note = note
note0 = ttk.Frame(note,width=300,height=300)
note1 = ttk.Frame(note,width=300,height=300)
note2 = ttk.Frame(note,width=300,height=300)
note.add(note0,text="note0",state="normal")
note.add(note1,text="note1",state="normal")
note.add(note2,text="note2",state="normal")
note.bind("<<NotebookTabChanged>>",self.getNoteName)
self.label = ttk.Label(self,text="none")
self.label.pack()
def getNoteName(self,event):
note =event.widget
self.label["text"]=note.tab(note.select(),"text")
if __name__ == '__main__':
master = Tk()
master.title("NotebookEventSample")
master.geometry("400x400")
NotebookEventSample(master)
master.mainloop()