Pré-requisitos: GUI Python - tkinter , Python: Pillow

Você já se perguntou em fazer um visualizador de imagens com a ajuda de Python? Aqui está uma solução para fazer o visualizador de imagens com a ajuda do Python. Podemos fazer isso com a ajuda de Tkinter e pillow. Iremos revelar o módulo necessário e o código abaixo. 

Módulo Necessário

  • Tkinter: Tkinter é uma biblioteca com a ajuda da qual podemos fazer GUI (Graphical User Interface).
 pip install tkinter
  • pillow: Podemos adicionar fotos, pois é uma biblioteca de imagens do Python.
 pip instalar pillow

Agora vamos codificar para ele

Começando

  • O código abaixo demonstra as estruturas básicas, inicialização de botão e layout da GUI produzida
from tkinter import *
from PIL import ImageTk, Image 
root = Tk() 
root.title("Image Viewer") 
root.geometry("700x700") 
  
image_no_1 = ImageTk.PhotoImage(Image.open("Sample.png")) 
image_no_2 = ImageTk.PhotoImage(Image.open("sample.png")) 
image_no_3 = ImageTk.PhotoImage(Image.open("Sample.png")) 
image_no_4 = ImageTk.PhotoImage(Image.open("sample.png")) 
List_images = [image_no_1, image_no_2, image_no_3, image_no_4] 
  
label = Label(image=image_no_1) 
label.grid(row=1, column=0, columnspan=3) 
button_back = Button(root, text="Back", command=back, 
                     state=DISABLED) 
button_exit = Button(root, text="Exit", 
                     command=root.quit) 
  
button_forward = Button(root, text="Forward", 
                        command=lambda: forward(1)) 
button_back.grid(row=5, column=0) 
button_exit.grid(row=5, column=1) 
button_forward.grid(row=5, column=2) 
  
root.mainloop() 
  • Função Avançar: Esta função é para adicionar a funcionalidade do botão Avançar
def forward(img_no): 
  
    
    
    
    global label 
    global button_forward 
    global button_back 
    global button_exit 
    label.grid_forget() 
  
    
    
    label = Label(image=List_images[img_no-1]) 
  
    
    
    label.grid(row=1, column=0, columnspan=3) 
    button_for = Button(root, text="forward", 
                        command=lambda: forward(img_no+1)) 
  
    
    if img_no == 4: 
        button_forward = Button(root, text="Forward", 
                                state=DISABLED) 
  
    
    
    button_back = Button(root, text="Back", 
                         command=lambda: back(img_no-1)) 
  
    
    button_back.grid(row=5, column=0) 
    button_exit.grid(row=5, column=1) 
    button_for.grid(row=5, column=2) 
  • Função para trás: esta função é para adicionar a funcionalidade ao botão para trás
def back(img_no): 
  
    
    
    global label 
    global button_forward 
    global button_back 
    global button_exit 
    label.grid_forget() 
  
    
    label = Label(image=List_images[img_no - 1]) 
    label.grid(row=1, column=0, columnspan=3) 
    button_forward = Button(root, text="forward", 
                            command=lambda: forward(img_no + 1)) 
    button_back = Button(root, text="Back", 
                         command=lambda: back(img_no - 1)) 
    print(img_no) 
  
    
    
    if img_no == 1: 
        button_back = Button(root, Text="Back", state=DISABLED) 
  
    label.grid(row=1, column=0, columnspan=3) 
    button_back.grid(row=5, column=0) 
    button_exit.grid(row=5, column=1) 
    button_for.grid(row=5, column=2) 

Código Completo

Imagens utilizadas e seu pedido - 

Ordem em que as imagens serão exibidas.

from tkinter import *
from PIL import ImageTk, Image 
  
  
def forward(img_no): 
  
    
    
    
    global label 
    global button_forward 
    global button_back 
    global button_exit 
    label.grid_forget() 
  
    
    
    label = Label(image=List_images[img_no-1]) 
  
    
    
    label.grid(row=1, column=0, columnspan=3) 
    button_for = Button(root, text="forward", 
                        command=lambda: forward(img_no+1)) 
  
    
    if img_no == 4: 
        button_forward = Button(root, text="Forward", 
                                state=DISABLED) 
  
    
    
    button_back = Button(root, text="Back", 
                         command=lambda: back(img_no-1)) 
  
    
    button_back.grid(row=5, column=0) 
    button_exit.grid(row=5, column=1) 
    button_for.grid(row=5, column=2) 
  
  
def back(img_no): 
  
    
    
    global label 
    global button_forward 
    global button_back 
    global button_exit 
    label.grid_forget() 
  
    
    label = Label(image=List_images[img_no - 1]) 
    label.grid(row=1, column=0, columnspan=3) 
    button_forward = Button(root, text="forward", 
                            command=lambda: forward(img_no + 1)) 
    button_back = Button(root, text="Back", 
                         command=lambda: back(img_no - 1)) 
    print(img_no) 
  
    
    
    if img_no == 1: 
        button_back = Button(root, Text="Back", state=DISABLED) 
  
    label.grid(row=1, column=0, columnspan=3) 
    button_back.grid(row=5, column=0) 
    button_exit.grid(row=5, column=1) 
    button_for.grid(row=5, column=2) 
  
  
root = Tk() 
root.title("Image Viewer") 
root.geometry("700x700") 
  
image_no_1 = ImageTk.PhotoImage(Image.open("Sample.png")) 
image_no_2 = ImageTk.PhotoImage(Image.open("sample.png")) 
image_no_3 = ImageTk.PhotoImage(Image.open("Sample.png")) 
image_no_4 = ImageTk.PhotoImage(Image.open("sample.png")) 
List_images = [image_no_1, image_no_2, image_no_3, image_no_4] 
  
label = Label(image=image_no_1) 
label.grid(row=1, column=0, columnspan=3) 
button_back = Button(root, text="Back", command=back, 
                     state=DISABLED) 
button_exit = Button(root, text="Exit", 
                     command=root.quit) 
  
button_forward = Button(root, text="Forward", 
                        command=lambda: forward(1)) 
button_back.grid(row=5, column=0) 
button_exit.grid(row=5, column=1) 
button_forward.grid(row=5, column=2) 
  
root.mainloop() 

Resultado: