Image Viewer App in Python mit Tkinter
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
))
(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 -
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
))
(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: