tkinter canvas aktualisiert die Farbe nicht
Ich zeichne ein Oval in eine Leinwand, die perfekt funktioniert, auch wenn sie rot ist und die Schleifen auch gut laufen, weil ich den Druck sehen kann. Es soll die Farbe schon mal 1000ms ändern. Aber es ändert nicht die Farbe?
def draw_light(self):
w = tk.Canvas(self.frame_Light)
w.pack()
w.create_oval(10, 10, 30, 30, fill="yellow", tags="light")
if self.light_on:
w.itemconfig("light", fill="blue")
self.light_on = False
print "on"
else:
w.itemconfig("light", fill="red")
self.light_on = True
print "of"
self.app.after(1000, self.draw_light)
AKTUALISIEREN Wenn Sie den Code in Ihre Vorschläge ändern, wird nur die rote Leinwand generiert, auf der er sich befindet
def draw_light(self):
self.ligth_canvas = tk.Canvas(self.frame_Light)
self.ligth_canvas.pack()
self.ligth_canvas.create_oval(10, 10, 30, 30, fill="yellow", tags="light")
self.app.after(0, self.change_light)
def change_light(self):
i = self.ligth_canvas.find_withtag("light")
if self.light_on:
self.ligth_canvas.itemconfig(i, fill="blue")
self.light_on = False
print "on"
else:
self.ligth_canvas.itemconfig(i, fill="red")
self.light_on = True
print "of"
self.app.after(5000, self.change_light)