import tkinter as tk
from tkinter import ttk


def show_tab(index):
    notebook.select(index)  # 使用 notebook 的 select 方法切换到指定索引的 tab


root = tk.Tk()
root.title("自定义按钮切换 Notebook 内容")

# 创建一个 Style 实例
style = ttk.Style()

# 为我们的 Notebook 创建一个新的样式名称
notebook_style_name = "NoTabs.TNotebook"
style.configure(notebook_style_name)  # 可以进行其他配置，如果需要

# 移除这个新样式的 Tab 布局
style.layout(notebook_style_name + ".Tab", [])

notebook = ttk.Notebook(root, style=notebook_style_name)  # 将自定义样式应用到这个 Notebook
notebook.pack(fill="both", expand=True)

# 创建不同的内容 Frame
tab1_content = ttk.Frame(notebook)
label1 = tk.Label(tab1_content, text="这是选项卡 1 的内容", padx=50, pady=50)
label1.pack(expand=True, fill="both")
notebook.add(tab1_content, text="标签一")  # 虽然设置了 text，但我们会隐藏标签

tab2_content = ttk.Frame(notebook)
label2 = tk.Label(tab2_content, text="这是选项卡 2 的内容", padx=50, pady=50)
label2.pack(expand=True, fill="both")
notebook.add(tab2_content, text="标签二")  # 同样设置了 text

tab3_content = ttk.Frame(notebook)
label3 = tk.Label(tab3_content, text="这是选项卡 3 的内容", padx=50, pady=50)
label3.pack(expand=True, fill="both")
notebook.add(tab3_content, text="标签三")  # 同样设置了 text

# 创建自定义按钮
button1 = tk.Button(root, text="显示内容 1", command=lambda: show_tab(0))
button1.pack(side="left", padx=5)

button2 = tk.Button(root, text="显示内容 2", command=lambda: show_tab(1))
button2.pack(side="left", padx=5)

button3 = tk.Button(root, text="显示内容 3", command=lambda: show_tab(2))
button3.pack(side="left", padx=5)

root.mainloop()

# import tkinter as tk
# from tkinter import ttk
#
# def add_new_tab():
#     global tab_count
#     tab_count += 1
#     new_tab = ttk.Frame(notebook)
#     label = tk.Label(new_tab, text=f"这是动态添加的选项卡 {tab_count}", padx=50, pady=50)
#     label.pack(expand=True, fill="both")
#     notebook.add(new_tab, text=f"动态标签 {tab_count}")
#
# root = tk.Tk()
# root.title("动态添加 Notebook 标签")
#
# notebook = ttk.Notebook(root)
# notebook.pack(fill="both", expand=True)
#
# # 初始添加一些标签
# tab1 = ttk.Frame(notebook)
# label1 = tk.Label(tab1, text="初始选项卡 1", padx=50, pady=50)
# label1.pack(expand=True, fill="both")
# notebook.add(tab1, text="标签一")
#
# tab2 = ttk.Frame(notebook)
# label2 = tk.Label(tab2, text="初始选项卡 2", padx=50, pady=50)
# label2.pack(expand=True, fill="both")
# notebook.add(tab2, text="标签二")
#
# tab_count = 2  # 记录已经添加的标签数量
#
# # 添加一个按钮，点击时动态添加新标签
# add_button = tk.Button(root, text="添加新标签", command=add_new_tab)
# add_button.pack(pady=10)
#
# root.mainloop()
