Я хочу обновить метку моего окна tkinter новой переменной из данных вне потока.
Вот мой пример кода:
class App(threading.Thread):
global small
global medium
global large
global jumbo
global reject
def __init__(self):
threading.Thread.__init__(self)
self.start()
def callback(self):
self.root.quit()
def run(self):
self.root = tk.Tk()
self.root.protocol("WM_DELETE_WINDOW", self.callback)
string1 = "SMALL: " + str(small) + '\n' + "MEDIUM: " + str(medium) + '\n' + "LARGE: " \
+ str(large) + '\n' + "JUMBO: " + str(jumbo) + '\n' + "REJECTED: " + str(reject) + '\n' + "TOTAL: " + str(total)
label = tk.Label(self.root, text=string1)
label.pack()
self.root.mainloop()
app = App()
#actual code runs outside the App() thread
Переменные там изменяются фактическим кодом, выполняющимся вне потока. Я пытался использовать root.after()
, но не могу заставить его работать.