Живой рисунок на холсте tkinter - PullRequest
1 голос
/ 02 мая 2019

Мне нужно нарисовать много линий / многоугольников на холсте, но я хочу сначала отобразить холст, а затем увидеть каждый объект во время рисования.

Вот мой код:

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

draw_something(canvas)

root.mainloop()

Проблема в том, что python показывает холст после рисования всего, а это не то, что я хочу.

1 Ответ

2 голосов
/ 02 мая 2019

В следующем примере 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()
...