Voraussetzungen: Python GUI - tkinter , Python: Pillow

Haben Sie sich jemals gefragt, ob Sie mit Hilfe von Python einen Bildbetrachter erstellen möchten? Hier ist eine Lösung, um den Bildbetrachter mithilfe von Python zu erstellen. Wir können dies mit Hilfe von Tkinter und pillow tun. Wir werden das benötigte Modul und den Code unten erläutern. 

Modul benötigt

  • Tkinter: Tkinter ist eine Bibliothek, mit deren Hilfe wir eine grafische Benutzeroberfläche (GUI) erstellen können.
 pip install tkinter
  • pillow: Wir können Fotos hinzufügen, da es sich um eine Imaging-Bibliothek von Python handelt.
 Pip Install pillow

Jetzt lasst uns dafür codieren

Einstieg

  • Der folgende Code zeigt die grundlegenden Strukturen, die Schaltflächeninitialisierung und das Layout der erstellten GUI
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() 
  • Weiterleitungsfunktion: Diese Funktion dient zum Hinzufügen der Funktionalität zur Weiterleitungstaste
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) 
  • Rückwärtsfunktion: Diese Funktion dient zum Hinzufügen der Funktionalität zur Rückwärtsschaltfläche
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) 

Vollständiger Code

Verwendete Bilder und deren Reihenfolge - 

Reihenfolge, in der die Bilder angezeigt werden.

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() 

Ausgabe: