📜  如何在 tkinter 中清除画布上的所有内容 - Python (1)

📅  最后修改于: 2023-12-03 14:52:35.423000             🧑  作者: Mango

如何在 tkinter 中清除画布上的所有内容 - Python

在编写 tkinter 程序时,有时需要清除画布上的所有内容,以便重新绘制画布。本文将介绍如何在 tkinter 中清除画布上的所有内容。

方法一:使用 delete 方法

使用 Canvas 对象的 delete 方法可删除画布上的指定项。要删除画布上的所有内容,只需提供 ALL 参数即可。

canvas.delete(ALL)
方法二:使用 clear 方法

在 Python 3.9 及以上版本中,Canvas 对象提供了 clear 方法,用于清除画布上的所有内容。

canvas.clear()
示例代码

以下是一个简单的示例程序,演示了如何使用上述方法清除画布上的所有内容:

import tkinter as tk

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

# 绘制一个圆形
canvas.create_oval(50, 50, 150, 150, fill='red')

# 添加一个按钮,点击后清除画布上的所有内容
button = tk.Button(root, text='Clear', command=lambda: canvas.delete(ALL))
button.pack()

root.mainloop()

请注意,每次单击“Clear”按钮,都会清除画布上的所有内容,因此圆形会消失。

如果您使用的是 Python 3.9 及以上版本,可以将 canvas.delete(ALL) 替换为 canvas.clear()

总结

本文介绍了在 tkinter 中清除画布上的所有内容的两种方法。您可以选择 Canvas 对象的 delete 方法或 clear 方法中的一种,具体取决于您使用的 Python 版本。如果您需要在 tkinter 程序中清除画布上的所有内容,请根据实际情况选择合适的方法。