How to clear Tkinter Canvas using Python?

9.2K    Asked by AugustinaFuentes in Python , Asked on Apr 19, 2021

 When I draw a shape using the following piece of code:

canvas.create_rectangle(10, 10, 50, 50, color="green")

Does Tkinter keep track of the fact that it was created?

In a simple game, I'm making my code which has one Frame create a bunch of rectangles, and then I draw a big black rectangle to clear the screen, and then draw another set of updated rectangles, and so on.

Am I creating thousands of rectangle objects in memory?

I know you can assign the code above to a variable, but if I don't do that and just draw directly to the canvas, does it stay in memory, or does it just draw the pixels, like in the HTML5 canvas?

To clear a Tkinter clear canvas, you can use the delete method.

The delete method ensures you to avoid memory leaks and not end up creating thousands of objects.

As a parameter pass "all" to delete all items on the canvas :

canvas.delete("all")

Note : Here the string "all" is a special tag that represents all items on the canvas.



Your Answer

Answer (1)

To clear a Tkinter canvas in Python, you can use the delete() method of the canvas widget. This method allows you to remove all items drawn on the canvas, effectively clearing it. Here's how you can do it:

import tkinter as tk
def clear_canvas():
    canvas.delete("all")
# Create a Tkinter window
root = tk.Tk()
root.title("Clear Canvas Example")
# Create a canvas
canvas = tk.Canvas(root, width=400, height=300, bg="white")
canvas.pack()
# Create some items on the canvas (for demonstration)
# Example: Draw a rectangle
canvas.create_rectangle(50, 50, 200, 150, fill="blue")
# Create a button to clear the canvas
clear_button = tk.Button(root, text="Clear Canvas", command=clear_canvas)
clear_button.pack()
# Run the Tkinter event loop
root.mainloop()

In this example:

We create a Tkinter window and a canvas widget.

We draw some items on the canvas (a rectangle in this case) for demonstration purposes.

We define a function clear_canvas() that uses the delete("all") method to remove all items from the canvas.

We create a button that calls the clear_canvas() function when clicked.

Finally, we start the Tkinter event loop to display the window and handle user interactions.

When you click the "Clear Canvas" button, it will remove all items drawn on the canvas, effectively clearing it.

6 Months

Interviews

Parent Categories