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
13 days ago

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

@Girolamo_savonarola_
13 days ago

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

@Dev_Rodrigues
13 days ago

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

@kauebrunolopes9240
13 days ago

O meu n fica com fundo transparente

@kaciosilva6261
13 days 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
13 days 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
13 days 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
13 days 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
13 days ago

Não aparece nada…

@cortescuite1600
13 days ago

não funciona

@franciscojunior2742
13 days ago

x

@ySoledBr
13 days ago

nao esta funcionando no python 3.8 e 3.9

@joaomarcosn.dasilva7069
13 days ago

Excelente conteudo

@marajanevazdaveiga4498
13 days ago

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

@tecnologianerd
13 days ago

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

@Celso_78
13 days 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
13 days ago

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

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