これはそれを行います:
from Tkinter import *
master = Tk()
w = Canvas(master, width=200, height=200)
w.pack()
i=w.create_line(0, 0, 100, 100)
# Bind the mouse click to the delete command
w.bind("<Button-1>", lambda e: w.delete(i))
mainloop()
コメントに応じて編集:
はい、上記のソリューションは、ウィンドウ内の任意の場所でのマウス クリックを登録します。クリックが近くにある場合にのみ行を削除する場合は、より複雑なものが必要になります。つまり、次のようなものです。
from Tkinter import *
master = Tk()
w = Canvas(master, width=200, height=200)
w.pack()
i=w.create_line(0, 0, 100, 100)
def click(event):
# event.x is the x coordinate and event.y is the y coordinate of the mouse
if 80 < event.x < 120 and 80 < event.y < 120:
w.delete(i)
w.bind("<Button-1>", click)
mainloop()
このスクリプトは、マウス クリックの座標が線の 20 ポイント以内にある場合x
にのみ線を削除します。y
これを完全に設定することはできません。必要に応じて微調整する必要があります。