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!
Didática perfeita , me inscrevi no primeiro vídeo que assisti, parabéns pelo conteúdo agrega altíssimo valor 👏👏
Dá pra fazer com Grid também né?
Professor como adiciona duas imagens na mesma tela? duas imagens diferentes
O meu n fica com fundo transparente
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?
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)
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!
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>
Não aparece nada…
não funciona
x
nao esta funcionando no python 3.8 e 3.9
Excelente conteudo
Quando carrego a imagem…o programa fecha automaticamente….coloquei do mesmo jeito que foi passado…o que seria?
Parabéns pela aula, professor! Aguardando pelo curso de Flutter + Dart – <Programação Mobile>
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?
Sempre Top As aulas, Parabéns Professor pelo o conteúdo Compartilhado.