Ткинтер рисование на холсте задерживается - PullRequest
0 голосов
/ 12 октября 2018

Я новичок в tkinter и пытаюсь сделать базовое приложение для рисования.Однако, когда я перемещаю курсор, он иногда внезапно останавливает рисование, а затем показывает только законченную линию через несколько секунд.Это показано здесь.

https://www.youtube.com/edit?video_referrer=watch&video_id=_g8n55V6qPQ

Это задержка?В противном случае мой ноутбук работает нормально, и он может даже «запаздывать» с первого раза (т.е. до того, как на холсте появятся какие-либо другие объекты).Если это просто задержка, какие у меня есть обходные пути при создании моего приложения для рисования на Python?

Это мой код:

from tkinter import *
root = Tk()
root.title("Note Taking")

can_width = 800
can_height = 800
canvas = Canvas(root, width=can_width, height=can_height, bg='white')
canvas.pack(padx=20, pady=20)

class g():
    points = []
    user_line = None
    drawing = False
    t = 0

def leftClick(event):
    g.points = []
    g.user_line = None
    g.drawing = True
    g.points.append(event.x)
    g.points.append(event.y)

def leftMove(event):
    # Print out an increasing number: t, so I can see it in the output
    print(g.t)
    g.t+=1

    if g.drawing: 
        g.points.append(event.x)
        g.points.append(event.y)
        if g.user_line == None:
            g.user_line = canvas.create_line(g.points, width=4, smooth=1)
        else:
            canvas.coords(g.user_line, g.points)

def leftRelease(event):
    g.points = []
    g.user_line = None


canvas.bind('<Button-1>', leftClick)
canvas.bind('<B1-Motion>', leftMove)
canvas.bind('<ButtonRelease-1>', leftRelease)

root.mainloop()
...