【问题标题】:Live drawing on tkinter canvas在 tkinter 画布上实时绘图
【发布时间】:2019-05-02 10:45:42
【问题描述】:

我需要在画布上绘制许多线条/多边形,但我想先显示画布,然后在绘制时查看每个对象。

这是我的代码:

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

draw_something(canvas)

root.mainloop()

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

【问题讨论】:

  • 试试root.after(1000, draw_something, canvas),而不是直接在mainloop之前调用draw_something

标签: python tkinter tkinter-canvas


【解决方案1】:

在以下示例中,画布上每秒会创建 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()

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2018-11-04
    • 2019-08-18
    • 1970-01-01
    相关资源
    最近更新 更多