在 tkinter 上实时绘图 canvas

Live drawing on tkinter canvas

我需要在 canvas 上绘制许多 lines/polygons,但我想先显示 canvas,然后在绘制时查看每个对象。

这是我的代码:

root = tk.Tk()
canvas = tk.Canvas(root, height=800, width=800)
canvas.pack()

draw_something(canvas)

root.mainloop()

问题是 python 在绘制所有内容后显示 canvas,这不是我想要的。

在下面的例子中,canvas每秒创建 10 条随机线。

import tkinter as tk
import random

def make_segment():
    return [random.randrange(0, 800) for _ in range(4)]

def draw_random_lines():
    canvas.create_line(*make_segment())
    root.after(100, draw_random_lines)

root = tk.Tk()
canvas = tk.Canvas(root, height=800, width=800)
canvas.pack()

draw_random_lines()

root.mainloop()