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

Python Tkinter中继承tk.Tk的窗口如何销毁?

解决继承tk.Tk的类销毁窗口的问题

嘿,这问题其实超简单!因为你的myApp类现在直接继承了tk.Tk,self本身就是Tk窗口实例,所以不需要再找self.root了,直接调用self.destroy()就能销毁窗口啦。

给你补全代码示例,看看怎么给按钮加关闭功能:

from travelToolbox import readItems, readTransactions
import tkinter as tk

class myApp(tk.Tk):
    def __init__(self, itemRecords) :
        tk.Tk.__init__(self)
        self.itemRecords = itemRecords
        self.grid()
        self.entry = tk.Entry(self)
        self.entry.grid(column=1,row=0)
        # 给按钮绑定关闭窗口的命令
        button1 = tk.Button(self, text="关闭窗口", command=self.destroy)
        button1.grid(column=0, row=0)

# 初始化运行示例
if __name__ == "__main__":
    item_data = readItems()  # 假设该函数返回所需数据
    app = myApp(item_data)
    app.mainloop()

对比你之前的写法:之前是把Tk实例作为参数传入myApp并存在self.root里,所以用self.root.destroy();现在myApp自己就是Tk实例,直接用self.destroy()就搞定了。

要是在类的其他方法里需要关闭窗口,同样调用self.destroy()就行,比如:

def after_some_operation(self):
    # 完成操作后关闭窗口
    self.destroy()

是不是一下子就明白啦?😉

内容的提问来源于stack exchange,提问作者Irwin Qi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:44:51