如何在画布上单击鼠标上的图像以创建多边形Tkinter Python

时间:2018-06-26 07:49:44

标签: python image tkinter tkinter-canvas

任务是通过在图像的不同位置上单击鼠标来在图像上创建多个多边形。我将Python tkinter用于此任务。我向用户显示了图像。当用户单击图像时,我得到了x,y坐标。如何从用户单击的不同坐标创建多边形。最初,我想通过单击鼠标来创建简单的线条,但是随着所选点数的增加,它应该创建多边形。这是我为此任务编写的代码部分。

# Function to get the co-ordianates of  mouse clicked position and draw polygons
def draw_plygons(event):
    mouse_xy = (event.x, event.y)

# Draw canvas for iput image to pop up image for clicks
    filename = ImageTk.PhotoImage(img)
    canvas = Canvas(root,height=img.size[0],width=img.size[0])
    canvas.image = filename
    canvas.create_image(0,0,anchor='nw',image=filename)
    canvas.pack()
# bind function to canvas to generate event
    canvas.bind("<Button 3>", draw_polygons)
    root.mainloop()

1 个答案:

答案 0 :(得分:0)

这是解决方案,我是怎么做到的。

def draw_polygons(event):
        mouse_xy = (event.x, event.y)

我收集了list_of_points列表中的所有单击的点,然后使用:

canvas.create_polygon(list_of_points, fill='', outline='green', width=2)