HOWTO · Tkinter
Cómo configurar el icono de la ventana en Tkinter
Este tutorial introduce cómo configurar el icono de la ventana en Tkinter.
En esta página
Introduciremos métodos para establecer el icono de la ventana en Tkinter.
root.iconbitmappara establecer el icono de la ventanaroot.tk.call()para fijar el icono de la ventanaroot.iconphotopara establecer el icono de la ventana
root.iconbitmap para establecer el icono de la ventana
import tkinter as tk
root = tk.Tk()
root.iconbitmap("/path/to/ico/icon.ico")
root.mainloop()
iconbitmap(bitmap) pone el icono del widget de ventana/frame en bitmap. El bitmap debe ser de tipo ico, pero no de tipo png o jpg, de lo contrario, la imagen no se mostrará como el icono.
La imagen de arriba muestra cuando se usa el tipo ico en iconbitmap.
Si utiliza el tipo png, el icono que se muestra en la ventana estará en blanco,
tk.call('wm', 'Iconphoto', ) Método para establecer el icono de la ventana
import tkinter as tk
root = tk.Tk()
root.tk.call("wm", "iconphoto", root._w, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()
El método tk.call es la interfaz Tkinter para el intérprete tcl. Podríamos ejecutar un comando tcl utilizando este método call.
Es muy útil cuando el wrapper de Tkinter no puede acceder a algunas funciones de tcl/tk.
El wm se comunica con el gestor de ventanas.
Necesitamos configurar la imagen como tk.PhotoImage pero no la imagen en sí misma, de lo contrario tendremos un error _tkinter.TclError.
root.iconphoto para establecer el icono de la ventana
Otro método para establecer el icono de la ventana es usar root.iconphoto() método que acepta más tipos de imágenes como en tk.call('wm', 'iconphoto', ).
import tkinter as tk
root = tk.Tk()
root.iconphoto(False, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()
Aquí, False significa que esta imagen de icono se aplica sólo a esta ventana específica pero no a las futuras toplevels creadas.
Si se usa True, la imagen del icono se aplica a todos los toplevels creados en el futuro también.