Make a Image Slide Show App using Python and Tkinter

In this tutorial we will make a making a image slide show using python and Tkinter. I am doing this tutorial in Visual Studio Code but you can use any python IDE to work on this and make it the way I have here. You will also need to install the python “pillow” library. For this tutorial we will show you how to import images into Python and view it using Tkinter framework. Its really and fun to create something simple like this.

See this tutorial here on how to install PILLOW for visual studio – https://www.youtube.com/watch?v=XKmW94YWytQ

Lesson Objectives –

  1. Create a simple image gallery app using python and tkinter
  2. Use Labels to dynamically change images based on the buttons clicked
  3. Add button events
  4. Show many images you are viewing on the app using a label

Video Tutorial

 

Download the images for this app here

 

 

Source Code

from tkinter import *
from PIL import ImageTk, Image
# set up the tkinter window
root = Tk()
root.title("MOO ICT Python/Tkinter Image Viewer")
root.geometry("610x430")
root.iconbitmap("images/icon.ico")

# set up the images
image1 = ImageTk.PhotoImage(Image.open("images/01.jpg").resize((600, 350)))
image2 = ImageTk.PhotoImage(Image.open("images/02.jpg").resize((600, 350)))
image3 = ImageTk.PhotoImage(Image.open("images/03.jpg").resize((600, 350)))
image4 = ImageTk.PhotoImage(Image.open("images/04.jpg").resize((600, 350)))
image5 = ImageTk.PhotoImage(Image.open("images/05.jpg").resize((600, 350)))
# add them to the list
image_list = [image1, image2, image3, image4, image5]
# counter integer
counter = 0
# change image function
def ChangeImage():
    global counter
    if counter < len(image_list) - 1:
        counter += 1
    else:
        counter = 0
    imageLabel.config(image=image_list[counter])
    infoLabel.config(text="Image " + str(counter + 1) + " of " + str(len(image_list)))
# set up the components
imageLabel = Label(root, image=image1)
infoLabel = Label(root, text="Image 1 of 5", font="Helvetica, 20")
button = Button(root, text="Change", width=20, height=2, bg="purple", fg="white", command=ChangeImage)
# display the components
imageLabel.pack()
infoLabel.pack()
button.pack(side="bottom", pady=3)
# run the main loop
root.mainloop()

    



Comments are closed.