Cómo configurar el icono de la ventana en Tkinter

Jinku Hu 30 enero 2023 4 diciembre 2019 Tkinter Tkinter Window Tkinter Icon
  1. root.iconbitmap para establecer el icono de la ventana
  2. tk.call('wm', 'Iconphoto', ) Método para establecer el icono de la ventana
  3. root.iconphoto para establecer el icono de la ventana
Cómo configurar el icono de la ventana en Tkinter

Introduciremos métodos para establecer el icono de la ventana en Tkinter.

  1. root.iconbitmap para establecer el icono de la ventana
  2. root.tk.call() para fijar el icono de la ventana
  3. root.iconphoto para 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.

Tkinter establece el icono de la ventana

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,

Tkinter set icono de la ventana con png

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.

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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