Python Tkinker蟒蛇3帧更新
我有我的Tkinker应用程序,我在其中创建了更多的帧,并根据我单击的内容显示一个或另一个,现在的问题是,我希望他们在每次我呼叫他们时刷新新信息;你知道我该怎么做吗? 这是我的代码:Python Tkinker蟒蛇3帧更新,python,python-3.x,tkinter,frame,Python,Python 3.x,Tkinter,Frame,我有我的Tkinker应用程序,我在其中创建了更多的帧,并根据我单击的内容显示一个或另一个,现在的问题是,我希望他们在每次我呼叫他们时刷新新信息;你知道我该怎么做吗? 这是我的代码: class HFlair(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) container = tk.Frame(self) contai
class HFlair(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(10, weight=1)
container.grid_columnconfigure(10, weight=1)
self.container=container
self.frames = {}
for F in ((StartPage, None), (PageOne, None)):
page_name = F[0].__name__
frame = F[0](parent=container, controller=self, attr=F[1])
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("StartPage")
def show_frame(self, page_name,arg=None):
'''Show a frame for the given page name'''
frame = self.frames[page_name]
frame.tkraise()
if arg:
frame.users(arg)
class StartPage(tk.Frame):
def __init__(self, parent, controller,attr=None):
tk.Frame.__init__(self, parent,attr)
self.controller = controller
self.title=tk.Frame(self)
self.title.pack(side="top")
self.menu=tk.Frame(self)
self.menu.pack(side="top")
self.app=tk.Frame(self) #### frame that I want refresh
self.app.pack(side="top") #### frame that I want refresh
class PageOne(tk.Frame):
def __init__(self, parent, controller, attr=None):
self.controller=controller
tk.Frame.__init__(self, parent,attr)
self.controller = controller
self.title=tk.Frame(self)
self.title.pack(side="top")
self.menu=tk.Frame(self)
self.menu.pack(side="top")
self.app=tk.Frame(self) #### frame that I want refresh
self.app.pack(side="top") #### frame that I want refresh
我的问题是,在frame self.app中,我从数据库中获取了一些信息,因此每次我转到这个特定页面时,我都希望frame刷新获取更新信息
有什么简单的方法吗?
我尝试使用.update(),但不起作用,与其他方法相比,它没有给我任何问题,但框架没有刷新。
update()
用于强制mainloop
更新/重画小部件,而不是更新数据。您可以在每个页面中创建函数update\u frame()
,并在show\u frame
-frame.update\u frame()
-中调用它们,这样每次更改页面时都会执行该函数。有些页面可以有空的update_frame()
,而在其他页面,您可以将您的代码放在其中。ottimo,非ci avevo proprio pensato ma funziona perfettamente;)grazie 1000:我不知道你在吃什么——除了“grazie”:)哦,对不起,我在尝试你的建议,我写得很快,没有考虑语言:哈哈,我说它工作得很好,非常感谢你的帮助;)如果我记得很清楚的话,你在其他职位上帮了我很多;)百万克朗:D