2015-05-28 263 views

回答

2

最简单的方法是将整个窗口作为tk Frame的子类实现,然后销毁并重新创建它。您的代码可能如下所示:

import Tkinter as tk 

class Example(tk.Frame): 
    def __init__(self, parent): 
     tk.Frame.__init__(self, parent) 
     <other code here...> 

class Application: 
    def __init__(self): 
     self.root = tk.Tk() 
     self.frame = None 
     refreshButton = tk.Button(self.root, text="refresh", command=self.refresh) 
     self.refresh() 

    def refresh(self): 
     if self.frame is not None: 
      self.frame.destroy() 
     self.frame = Example(self.root) 
     self.frame.grid(...) 

虽然,子类化框架没有任何真正的魔力。您只需要创建一个框架并在其中放置一些小部件的功能。当你想刷新时,只需删除框架并再次调用你的功能。使用班级更方便一些,但班级并非绝对必要。