- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to update an image in a Tkinter Canvas?
Canvas can be used to play with images, animating objects, 3D modeling, displaying text, and many more. Moreover, we can display an image file using the create_image() constructor.
Following this, let us build an application that can update the canvas images locally. We can add a button to trigger the event which when pressed will change the canvas image.
To change a particular image, we can configure the canvas by using the itemconfig() constructor. It takes image files which need to be updated and displayed them on the window.
Use three images of your choice and save them in the same project directory.
Example
#Import the required library from tkinter import * from tkinter import ttk from PIL import Image, ImageTk #Create an instance of tkinter frame win= Tk() #Set the geometry win.geometry("750x400") #Define function to update the image def update_image(): canvas.itemconfig(image_container,image=img2) #Create a canvas and add the image into it canvas= Canvas(win, width=650, height= 350) canvas.pack() #Create a button to update the canvas image button= ttk.Button(win, text="Update", command=lambda:update_image()) button.pack() #Open an Image in a Variable img1= PhotoImage(file="logo.png") img2= PhotoImage(file="logo2.png") img3= PhotoImage(file="logo3.png") #Add image to the canvas image_container =canvas.create_image(0,0, anchor="nw",image=img1) win.mainloop()
Output
Running the above code will display a window with a canvas and a button to update the canvas image.
Now, click the "Update Image" button to update the canvas Image.