Python Course #68: Using Tkinter’s PhotoImage

Posted by


En este tutorial vamos a hablar sobre la clase PhotoImage de Tkinter en Python. Tkinter es una biblioteca estándar de Python para la creación de interfaces gráficas de usuario(GUI) y es ampliamente utilizada para la creación de aplicaciones de escritorio.

La clase PhotoImage nos permite cargar imágenes en nuestros widgets de Tkinter como etiquetas, botones, canvas, entre otros. Esto nos permite crear interfaces más atractivas e interactivas para nuestros usuarios.

Para empezar, necesitamos importar la clase PhotoImage de Tkinter:

from tkinter import Tk, Label, PhotoImage

A continuación, vamos a crear una ventana con una etiqueta que muestra una imagen. Para esto, primero necesitamos crear una instancia de la clase PhotoImage y cargar la imagen que queremos mostrar:

root = Tk()
image = PhotoImage(file='imagen.png')

En este caso, la imagen se debe encontrar en el mismo directorio que nuestro script Python y se debe especificar la extensión del archivo.

Luego, creamos una etiqueta en la ventana y le asignamos la imagen:

label = Label(root, image=image)
label.pack()

Finalmente, iniciamos el bucle principal de la ventana para que nuestra aplicación se mantenga abierta y funcional:

root.mainloop()

Con estos pasos, hemos creado una ventana que muestra una imagen utilizando la clase PhotoImage de Tkinter.

Otra forma de mostrar una imagen es a través de un botón. Podemos utilizar una función para manejar un evento como hacer clic en el botón y cambiar la imagen que se muestra:

def cambiar_imagen():
    image = PhotoImage(file='otra_imagen.png')
    label.config(image=image)
    label.image = image

button = Button(root, text='Cambiar imagen', command=cambiar_imagen)
button.pack()

En este caso, creamos un botón y le asignamos la función cambiar_imagen() como manejador del evento. Cuando se haga clic en el botón, se cargará una nueva imagen y se actualizará la etiqueta con la nueva imagen.

En resumen, la clase PhotoImage de Tkinter nos permite mostrar imágenes en nuestros widgets de forma sencilla y eficiente. Podemos cargar imágenes en etiquetas, botones, canvas, entre otros, para crear interfaces gráficas más atractivas y dinámicas. Espero que este tutorial haya sido útil y te haya ayudado a comprender cómo trabajar con imágenes en Tkinter. ¡Gracias por leer!

0 0 votes
Article Rating

Leave a Reply

17 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@renatoluzsilva7309
2 hours ago

Didática perfeita , me inscrevi no primeiro vídeo que assisti, parabéns pelo conteúdo agrega altíssimo valor 👏👏

@Girolamo_savonarola_
2 hours ago

Dá pra fazer com Grid também né?

@Dev_Rodrigues
2 hours ago

Professor como adiciona duas imagens na mesma tela? duas imagens diferentes

@kauebrunolopes9240
2 hours ago

O meu n fica com fundo transparente

@kaciosilva6261
2 hours ago

amigo, quando eu crio uma função para um botão e crio uma nova tela, eu não consigo importar imagem. Ele abre a nova tela mas eu não consigo pôr uma imagem de fundo. O que eu posso fazer?

@eduardofernandez2469
2 hours ago

Como coloca a mesma imagem varias vezes ? Nao consigo de jeito nenhum. mesmo que os arquivos sejam diferentes, a1.png, a2.png. se a imagem for a mesma, ele retira a anterior e coloca na proxima linha. me ajuda por favor amigo

vmark = PhotoImage(file='a2.png')

match mcount == 2:

case (2):

vmark2 = vmark.copy()

tree.insert('', 2, values=(WP, ''), image=vmark2)

second.withdraw()

match mcount == 1:

case (1):

vmark1 = vmark.copy()

tree.insert('', 2, values=(WP, ''), image=vmark1)

@ninjahkz4078
2 hours ago

Pra quem ta com problema de aparecer apenas uma imagem branca, atualmente é preciso criar uma nova variável pra Img, como assim? olha esse trecho do código:

def PutImage(self):
LocalDoPrograma = os.path.dirname(__file__)

Img = PhotoImage(file=LocalDoPrograma+'\im.jpg')

Imgg = Label(self.Window, image=Img)

Imgg.photo = Img ——–> novo valor, a var imgg com .photo(imgg.photo) = Img

Imgg.place(relx=0.045, rely=0.50)

e assim ele vai funcionar corretamente!

@area_code_oficial
2 hours ago

Meu tá dando esse erro
PS D:teste> & C:/Users/Admin/AppData/Local/Programs/Python/Pythe Traceback (most recent call last):

File "d: testetesteingTk.py", line 5, in <module> ing- PhotoImage(file='foto.jpg')

File "C:UsersAdminAppDataLocalProgramsPython Python39lib

Image. _init_(self, 'photo', name, cnf, master, **lov) File "C:UsersAdminAppDataLocalProgramsPython Python39lib

self.tk.call(('image', 'create', ingtype, name,) + options) _tkinter.TclError: couldn't recognize data in image file "foto.jpE PS D:teste>

@calebelino1518
2 hours ago

Não aparece nada…

@cortescuite1600
2 hours ago

não funciona

@franciscojunior2742
2 hours ago

x

@ySoledBr
2 hours ago

nao esta funcionando no python 3.8 e 3.9

@joaomarcosn.dasilva7069
2 hours ago

Excelente conteudo

@marajanevazdaveiga4498
2 hours ago

Quando carrego a imagem…o programa fecha automaticamente….coloquei do mesmo jeito que foi passado…o que seria?

@tecnologianerd
2 hours ago

Parabéns pela aula, professor! Aguardando pelo curso de Flutter + Dart – <Programação Mobile>

@Celso_78
2 hours ago

Parabéns professor, muito bem explicado….
Professor quantos componentes tem o Tkinter, tem alguma documentação ou apostila onde mostra todos os componentes, e formas de se trabalhar de preferência em português e tão bem explicado quanto as suas aulas?

@luizdomingo2799
2 hours ago

Sempre Top As aulas, Parabéns Professor pelo o conteúdo Compartilhado.

17
0
Would love your thoughts, please comment.x
()
x