You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter中实现删除选中Notebook标签页的功能?

在Tkinter中删除选中的Notebook标签页

很简单,ttk.Notebook提供了现成的方法来实现这个需求,我们只需要结合select()和forget()(或destroy())方法就能完成删除选中标签页的功能。

核心实现思路

  • 用tasktabs.select()获取当前用户选中的标签页对象
  • 用tasktabs.forget()将标签页从Notebook中移除(标签页对象本身还保留,后续可重新添加);如果需要彻底销毁标签页,就调用标签页对象的destroy()方法

补充后的完整代码

from tkinter import *
from tkinter import ttk
import math
import sys

myApp = Tk()
myApp.title("Program")
myApp.geometry("1000x1200")

tasktabs = ttk.Notebook(myApp)
tasktabs.pack(fill=BOTH, expand=True)  # 把Notebook放到窗口里才能显示

TabOne = ttk.Frame(tasktabs)
tasktabs.add(TabOne, text="Tab One")
TabTwo = ttk.Frame(tasktabs)
tasktabs.add(TabTwo, text="Tab Two")

# 添加触发删除的按钮,方便测试
delete_btn = ttk.Button(myApp, text="删除选中标签页", command=deletetab)
delete_btn.pack(pady=10)

def deletetab():
    selected_tab = tasktabs.select()
    if selected_tab:  # 先确认有选中的标签页
        # 从Notebook中移除标签页(对象仍存在,可后续重新添加)
        tasktabs.forget(selected_tab)
        # 要是需要彻底销毁标签页,取消下面这行注释:
        # selected_tab.destroy()

myApp.mainloop()

小提示

  • 我额外加了tasktabs.pack(fill=BOTH, expand=True)和删除按钮,这样你运行代码就能直接看到实际效果
  • 如果用forget(),之后你还可以通过tasktabs.add(selected_tab, text="新标题")把标签页重新加回去;要是用destroy(),这个标签页就彻底被销毁,无法再复用

内容的提问来源于stack exchange,提问作者Aleksandar Beat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:22:17