рисование свободных линий на холсте tkinter - PullRequest
0 голосов
/ 05 мая 2018

Я пытался понять следующий фрагмент кода 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 голосов
/ 05 мая 2018

В функции щелчка глобальная переменная используется для хранения начального щелчка мыши. Эта же переменная используется в функции перемещения в качестве ссылки на начальную точку рисуемой линии. Когда пользователь перемещает мышь, функция перемещения вызывается повторно, и рисование продолжается с последней предыдущей точки (prev = move_event). Когда пользователь отпускает щелчок мыши и затем повторно щелкает, процесс начинается снова с функцией щелчка, сохраняющей начальную точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...