在tkinter画布上自由画线

时间:2018-05-05 16:47:35

标签: python-3.x tkinter

我试图了解下面的Tkinter代码,允许用户使用计算机的鼠标在画布上自由绘图。然而,我无法理解以下代码行实际在做什么。

prev = move_event

这是完整的代码......

from tkinter import *
master = Tk()

canvas = Canvas(master, width=600, height=300, bg='white')
canvas.pack(padx=20, pady=20)


def click(click_event):
    global prev
    prev = click_event


def move(move_event):
    global prev
    canvas.create_line(prev.x, prev.y, move_event.x, move_event.y, width=2)
    prev = move_event  # what does this do ?


canvas.bind('<Button-1>', click)
canvas.bind('<B1-Motion>', move)

mainloop()

1 个答案:

答案 0 :(得分:0)

在click函数中,全局变量用于存储初始鼠标单击。移动函数中使用相同的变量作为对绘制线的起点的引用。当用户移动鼠标时,重复调用移动函数,并从最后一个点(prev = move_event)继续绘制。当用户释放鼠标单击然后重新单击时,该过程再次开始,点击功能存储初始点。