Cómo configurar el icono de la ventana en Tkinter
-
root.iconbitmappara establecer el icono de la ventana -
tk.call('wm', 'Iconphoto', )Método para establecer el icono de la ventana -
root.iconphotopara establecer el icono de la ventana
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.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook