-1
我想制作一个3页的GUI。起始页面有一个标题和一个开始按钮。当按下开始按钮时,将显示PageOne,5秒后显示PageTwo。然而,现在它以不同的方式工作:单击按钮时,等待5秒钟,并保持开始页面。然后显示PageOne和PageTwo,我只能看到PageTwo。
有人会告诉我如何解决这个问题?非常感谢。延迟后的tkinter显示帧
import tkinter as tk
import time
class MyApp(tk.Tk):
def __init__(self, height, width):
tk.Tk.__init__(self)
self.geometry('{}x{}'.format(height, width))
self.resizable(width=False, height=False)
self.container = tk.Frame(self)
self.container.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
self.container.grid_rowconfigure(0, weight=1)
self.container.grid_columnconfigure(0, weight=1)
self.frames = {}
for f in [StartPage, PageOne, PageTwo]:
self.frames[f] = f(self.container, self)
self.frames[f].config(height=height)
self.frames[f].config(width=width)
self.frames[f].grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, page):
self.frames[page].tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.parent = parent
self.controller = controller
self.create_widgets()
def create_widgets(self):
self.instruction = tk.Label(self, text='My Title')
self.instruction.config(font=("Courier", 20))
self.instruction.place(relx=0.5, rely=0.3, anchor=tk.CENTER)
self.button = tk.Button(self, text = 'START', command=self.click_start)
self.button.place(relx=0.5, rely=0.5, anchor=tk.CENTER)
def click_start(self):
# show PageOne
self.controller.show_frame(PageOne)
# wait for 5 seconds
time.sleep(5)
# show PageTwo
self.controller.show_frame(PageTwo)
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.parent = parent
self.controller = controller
self.create_widgets()
def create_widgets(self):
self.label = tk.Label(self,text='PageOne')
self.label.config(font=("Courier", 20))
self.label.place(relx=0.4, rely=0.4, anchor=tk.CENTER)
class PageTwo(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.parent = parent
self.controller = controller
self.create_widgets()
def create_widgets(self):
self.label = tk.Label(self, text='PageTwo')
self.label.config(font=("Courier", 30))
self.label.place(relx=0.5, rely=0.5, anchor=tk.CENTER)
if __name__ == '__main__':
root = MyApp(height=500, width=500)
root.mainloop()
能否请您提供一个最小的,完整的和可核查的例子(https://stackoverflow.com/help/mcve),这样我们就可以看到你的问题? –
我们不能运行你的代码 - 它取决于一个名为'BestModel'的类,它不是你发布的内容的一部分。请仅发布_only_重现问题所需的内容,但请发布重现此问题所必需的_everything_。 –