Aplicativo visualizador de imagens em Python usando Tkinter
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
))
(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 -
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()
Resultado:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva