canvas не обновляет текст
Хочу выводить текст поверх всех окон. Написал такой код, но текст не обновляется канвасом:
# IMPORTS
import tkinter
from threading import Thread
# CONFIGURATION
RESOLUTION = (1920, 1080, 1)
# CLASSES
class GetResolution:
def __init__(self):
self.width = "1920"
self.height = "1080"
self.k = int(self.height) / 1080
@property
def resolution(self):
return int(self.width), int(self.height), float(self.k)
class InitOverlay():
def __init__(self, text):
self.root = tkinter.Tk()
self.root.overrideredirect(True)
self.root.wm_attributes("-transparentcolor", "white")
self.root.wm_attributes("-topmost", True)
self.root.wm_attributes("-disabled", True)
self.canvas = tkinter.Canvas(self.root, width = RESOLUTION[0], height = RESOLUTION[1], bg = "white", highlightthickness = 0)
self.canvas.pack()
self.text=text
#self.launch()
self.run()
def run(self):
self.redraw_canvas()
self.root.mainloop()
def redraw_canvas(self):
self.canvas.delete("all")
print(t)
self.canvas.create_text(100,100, text=self.text[0], fill="red")
self.canvas.after(1000, self.redraw_canvas)
# MAIN
def main(text):
global RESOLUTION
RESOLUTION = GetResolution().resolution
InitOverlay(text)
# BODY
if __name__ == "__main__":
t = ["1234567890"]
o = Thread(target=InitOverlay, args=(t))
o.start()
#main(t)
for i in range(100000000000000):
print(i)
t[0]="%s"%i