Tkinter error for a scheduled event - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: Tkinter error for a scheduled event (/thread-15297.html) |
Tkinter error for a scheduled event - Ceegen - Jan-12-2019 Scheduled a variable to be updated with the current time for display in a label. ... def update_clock(): tab1_labeltxt = StringVar(time.strftime('%H %M %S')) brass_io.after(1000, update_clock) brass_io.after(1000, update_clock) brass_io.mainloop()Program works just fine without the above code, which produces this error: Exception in Tkinter callback Not sure what to do. Above my pay-grade.Did some testing though, and I can't find this exact problem elsewhere, but I did see something about it being a possible problem with class inheritance? I really don't know, very new to this. Thanks in advance <3 [edit] currently reading this: http://effbot.org/tkinterbook/variable.htm which seems to be getting somewhere. [edit 2] nope lol. still looking. RE: Tkinter error for a scheduled event - woooee - Jan-13-2019 A StringVar has to be displayed on something, a Label for example. RE: Tkinter error for a scheduled event - Ceegen - Jan-14-2019 The variable is being used by the label as the source for its' text. RE: Tkinter error for a scheduled event - woooee - Jan-14-2019 This one is not. A new one is being created in the function without being attached to a label or other widget. def update_clock(): tab1_labeltxt = StringVar(time.strftime('%H %M %S')) RE: Tkinter error for a scheduled event - wuf - Jan-14-2019 Hi Ceegen Here is a working solution: import time import tkinter as tk APP_TITLE = "The Time" APP_XPOS = 100 APP_YPOS = 100 APP_WIDTH = 200 APP_HEIGHT = 100 class Application(object): def __init__(self, main_win): self.main_win = main_win self.time_var = tk.StringVar() self.build() def build(self): tk.Label(self.main_win, textvariable=self.time_var, width=10, fg='blue', font=('Helvetica', 30, 'bold')).pack(expand=True) self.update_time() def update_time(self): self.time_var.set(time.strftime('%H:%M:%S')) self.main_win.after(1000, self.update_time) def main(): main_win = tk.Tk() main_win.title(APP_TITLE) #main_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS)) main_win.geometry("{}x{}".format(APP_WIDTH, APP_HEIGHT)) app = Application(main_win) main_win.mainloop()wuf RE: Tkinter error for a scheduled event - Ceegen - Jan-14-2019 (Jan-14-2019, 06:42 AM)woooee Wrote: This one is not. A new one is being created in the function without being attached to a label or other widget. The error being creating a new object, rather than update the one already made, correct? (Jan-14-2019, 07:59 AM)wuf Wrote: Hi Ceegen Thank you, this explains a lot. Appreciated, will try it out. |