2016-09-29 137 views
-2

我寫了一個方法來創建一個畫布帆布更新Tkinter的Python的

但我看到畫布不更新和GUI元素不更新

請指導在這裏,我要實現新的遊戲功能

+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所使用的)。