2016-09-29 2 views
-2

나는 캔버스캔버스 업데이트는 Tkinter 파이썬은

을 생성하는 방법을 썼다 그러나 나는 캔버스가 업데이트되지 않고 구이 요소

를 업데이트하지 않는 것을 알 내가 새로운 게임 기능을 구현하려면 여기에 인도하십시오

+0

'self.canvas.destroy()'를 사용해 보셨나요? – TigerhawkT3

+0

네가 나를 위해 일해 주신 덕분에 ... – Star123

답변

1

Tkinter 위젯 (예 : Canvas)에 대한 모든 참조를 제거해도 Tkinter 응용 프로그램에서 반드시 해당 객체 (또는 하위 위젯)가 삭제되는 것은 아닙니다.

import tkinter as tk 
root = tk.Tk() 
def f(): 
    tk.Label(root, text='hi').pack() 

f() 

Label에 대한 참조 이제까지 저장되지 않으며, 어쨌든 함수의 범위를 지역, 그리고 아직이 지속 : 당신은 작은 스크립트와이를 테스트 할 수 있습니다. Tkinter 위젯을 제거하려면 해당 destroy 메소드를 사용하십시오. 더 이상이있는 경우

self.canvas.destroy() 
self.canvas = tk.Canvas(self, width=2000, height=800) 
... 

당신이 그들과 함께 작업 할 수 있도록 그것은 당신의 Tkinter 객체에 대한 참조를 유지하는 좋은 방법은 (그들에 destroy() 호출과 같은 예를 들어,) 아직 있습니다, 일부는 Tkinter 객체는 실제로 삭제되지 않습니다 이미지 객체 (예 : Canvas.create_imageLabel에서 사용되는 이미지 객체)와 같은 객체에 대한 참조입니다.

관련 문제