타원을 캔버스에 그려 넣으면 완벽하게 작동합니다. 빨간색으로 표시되고 루프도 잘 실행되어 인쇄물을 볼 수 있습니다. 그것도 1000ms 색상을 변경하기로되어 있습니다. 그러나 그것의 색깔을 바꾸지 않는가? UPDATE tkinter 캔버스가 색상을 업데이트하지 않습니다.
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)
는 여전히 빨간색 캔버스가 잘못 itemconfig를 사용하는
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)
이전에 만든 이미지를 삭제하지 않고 새로운 캔버스를 만들 때마다 초인지 알고 계십니까? 그게 의도적 인거야? –