나는 매초 TKinter 창을 업데이트하려고합니다. 그래서 아이디어는 창을 열어야하고, 파이썬이 필드를 업데이트하고, 업데이트 된 창을 표시하도록하는 것입니다. 지금 상황은 두 번째 창이 첫 번째 창을 닫을 때만 표시된다는 것입니다. 나는 이것이 mainloop()과 관련이 있다고 생각한다. .update() 및 .update_idletasks()를 살펴 보았지만 구현 방법을 알 수 없습니다. TKinter는 주택이있는 필드를 표시하는 데 사용됩니다. 그래서 일반적으로이 작업을 수행해야입니다 :python tkinter 창을 업데이트하는 방법
- 은 (이미 구현) 주택
- 쇼의 새 위치를 생성 (이미 구현) 그것에 주택 (이미 구현) 집 위치
- 표시 필드를 생성 업데이트 된 필드
이것은 현재 코드입니다. 업데이트 기능이 필요한지 확실하지 않습니다.
class Plot(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
def createWidgets(self, list_houses):
houses = list_houses
self.w = tk.Canvas(self, width = field.width*SIZE, height = field.height*SIZE, bg = '#E4E4E4')
...
self.w.grid()
def update(self):
?
#GENERATES FIELD AND HOUSES
...
#PRINT FIRST WINDOW
plot = Plot()
plot.createWidgets(houses) <- PUT HOUSES IN TK INTER
plot.master.title('map of houses')
plot.mainloop()
# UPDATE FIELD <- THIS PART IS ONLY EXECUTED WHEN I CLOSE THE FIRST WINDOW, WHY?
i = 0
while i < 2:
update = field.update_houses(houses) <- GENERATES NEW LOCATION OF HOUSES
#PRINT UPDATED WINDOW, IT SHOULD BE PRINTED IN THE SAME WINDOW!
plot = Plot()
plot.createWidgets(houses) <- PUT HOUSES IN TKINTER
plot.master.title('map of houses')
i += 1
미리 감사드립니다.