I need to make a change between windows, after some time. But i am have a little bit of trouble making my code work: My windows change only when i click on button, i tried to put lambda in my command and also don't work.
import tkinter as tk # python3 #import Tkinter as tk # python import datetime TITLE_FONT = ("Helvetica", 18, "bold") time_start = datetime.datetime.now() delta_time = datetime.timedelta(seconds = 5) class SampleApp(tk.Tk): def __init__(self, *args, **kwargs): tk.Tk.__init__(self, *args, **kwargs) # the container is where we'll stack a bunch of frames # on top of each other, then the one we want visible # will be raised above the others container = tk.Frame(self) container.pack(side="top", fill="both", expand=True) container.grid_rowconfigure(0, weight=1) container.grid_columnconfigure(0, weight=1) self.frames = {} for F in (StartPage, TimePage): page_name = F.__name__ frame = F(container, self) self.frames[page_name] = frame # put all of the pages in the same location; # the one on the top of the stacking order # will be the one that is visible. frame.grid(row=0, column=0, sticky="nsew") self.show_frame("StartPage") def show_frame(self, page_name): '''Show a frame for the given page name''' frame = self.frames[page_name] frame.tkraise() class StartPage(tk.Frame): def __init__(self, parent, controller): tk.Frame.__init__(self, parent) self.controller = controller label = tk.Label(self, text="This is the start page", font=TITLE_FONT) label.pack(side="top", fill="x", pady=10) button1 = tk.Button(self, text="Go to Time Page", command=lambda: controller.show_frame(self.start_Counting()) ) button1.pack() def start_Counting(self): global time_start time_start = datetime.datetime.now() return 'TimePage' class TimePage(tk.Frame): def __init__(self, parent, controller): global delta_time tk.Frame.__init__(self, parent) self.controller = controller label = tk.Label(self, text="This is Time Page", font=TITLE_FONT) label.pack(side="top", fill="x", pady=10) self.time_exit = tk.StringVar() self.time_exit.set('%s' %datetime.datetime.now()) label2 = tk.Label(self, text=self.time_exit, font=TITLE_FONT) label2.pack(side="top", fill="x", pady=10) button = tk.Button(self, text="Go to the start page", command=lambda: controller.show_frame("StartPage")) button.pack() def update_Page(self): global time_start, delta_time #print('Executou o atualizar') time_until = delta_time - (datetime.datetime.now() - time_start) self.time_exit.set('%s' %time_until) if time_until <= 0: self.controller.show_frame('StartPage') # Go to the start_page after 5 seconds self.after(1000, update_Page) if __name__ == "__main__": app = SampleApp() app.mainloop() -- https://mail.python.org/mailman/listinfo/python-list