クラスからキャンバスオブジェクトを削除する際に問題が発生しました。
Rectangle
というタイプのオブジェクトを作成しましたf
。次に、このオブジェクトを削除する必要があります。Pythonf
はを削除しますが、Frame上にあるキャンバスオブジェクトは削除しません。どこに問題があるのかわかりません。
from tkinter import *
class Rectangle():
def __init__(self, coords, color):
self.coords = coords
self.color = color
def __del__(self):
print("In DELETE")
del self
print("Goodbye")
def draw(self, canvas):
"""Draw the rectangle on a Tk Canvas."""
print("In draw ")
print("Canvas = ",canvas)
print("self = ",self)
print("bild canvas = ",canvas.create_rectangle(*self.coords, fill=self.color))
root = Tk()
root.title('Basic Tkinter straight line')
w = Canvas(root, width=500, height=500)
f = []
f = Rectangle((0+30*10, 0+30*10, 100+30*10, 100+30*10), "yellow")
print("Draw object", f.draw(w), f)
f.__del__()
del f
w.pack()
mainloop()