2016-09-29 61 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によって使用されるような)画像オブジェクトのようなそれらへの参照。

関連する問題