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
相关产品推荐
相关产品推荐

