这将做到:
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()
x
只有当鼠标点击的和y
坐标在直线的 20 点以内时,该脚本才会删除直线。
请注意,我不能完美地设置它。您将不得不根据您的需要对其进行调整。