Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Error al colocar un icono a la ventana
#1
Exclamation 
Hola como están espero que estén bien quiero hacer una consulta con un ejercicio de practica que estoy realizando en python con la librería tkinder y es que no puedo colocar el icono a la ventana y no logro entender cual es el error que tengo porque todo lo demás me ha salido bien y bueno aqui les dejo el código:
Código:
import tkinter as tk
def main():
    root = tk.Tk()
    root.title('NOMBRE DE LA VENTANA')
    root.geometry("300x300")
    root.resizable(1,1)
    root.iconbitmap('/recursos/hogar.ico')
    root.mainloop()

if __name__ == '__main__':
    main()
Al intentar ejecutar la ventana me da el siguiente error
Código:
File "/usr/lib/python3.10/tkinter/__init__.py", line 2109, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "/recursos/hogar.ico" not defined
solo sucede si le coloco la linea root.iconbitmap('') el resto me sale todo bien.
Espero que puedan ayudarme.
Responder
#2
Hola. Prueba quitando la primer "/" en la ruta del iconbitmap.
Que quede así: "root.iconbitmap("recursos/hogar.ico")". A mí me funcionó.
Saludos.
Responder
#3
(17-02-2024, 01:46 PM)Diego escribió: Hola. Prueba quitando la primer "/" en la ruta del iconbitmap.
Que quede así: "root.iconbitmap("recursos/hogar.ico")". A mí me funcionó.
Saludos.

Cry con o sin la "/" sigue dando el mismo error no se que estoy haciendo mal.
Responder
#4
Vayamos por partes, porque seguramente es algún error nimio de esos que cada tanto aparecen y nos complican la vida.

El código está bien, yo ejecuto el mismo y me aparece el ícono.

Aquí te lo copio (de todas formas verás que es igualito al tuyo, excepto por la "/" que le quité).

Código:
import tkinter as tk
def main():
    root = tk.Tk()
    root.title('NOMBRE DE LA VENTANA')
    root.geometry("300x300")
    root.resizable(1,1)

    root.iconbitmap("recursos/hogar.ico")

    root.mainloop()

if __name__ == '__main__':
    main()

Y da como resultado la imagen que te adjunto (donde se ve el iconito a la izquierda del nombre de la ventana).

Prueba copiando y pegando el código mío (que es el tuyo) a ver qué ocurre.

Luego me cuentas.


Archivos adjuntos Miniatura(s)
   
Responder
#5
Por lo que veo  en la internet Linux no soporta ico. ico fue creado por Microsoft para Windows.

Yo no tengo tkinter pera esta es una posible solucion que he visto:


https://stackoverflow.com/questions/4536...inux-error
Código:
icon = PhotoImage(file='yourfile.ico')   
root.tk.call('wm', 'iconphoto', root._w, icon)
Responder
#6
(18-02-2024, 10:06 AM)Diego escribió: Vayamos por partes, porque seguramente es algún error nimio de esos que cada tanto aparecen y nos complican la vida.

El código está bien, yo ejecuto el mismo y me aparece el ícono.

Aquí te lo copio (de todas formas verás que es igualito al tuyo, excepto por la "/" que le quité).

Código:
import tkinter as tk
def main():
    root = tk.Tk()
    root.title('NOMBRE DE LA VENTANA')
    root.geometry("300x300")
    root.resizable(1,1)

    root.iconbitmap("recursos/hogar.ico")

    root.mainloop()

if __name__ == '__main__':
    main()

Y da como resultado la imagen que te adjunto (donde se ve el iconito a la izquierda del nombre de la ventana).

Prueba copiando y pegando el código mío (que es el tuyo) a ver qué ocurre.

Luego me cuentas.

Listo lo resolví de otra manera alguien aquí abajo me dijo que este error existe a las personas que usan Linux y yo tengo linux mint, no lo mencione porque no pensé que eso fuese relevante y al parecer tengo que usar otra forma de colocar el icono a la ventana porque con Linux no se pueden usar archivos ico

Código:
root.tk.call("wm", "iconphoto", root._w, tk.PhotoImage(file="Proyecto01/recursos/sobre.png"))
En vez de usar iconbitmap use iconphoto y cambie el archivo ico por un png y listo creo que me quedo excelente y me sirvió mucho eso de la "/" pero por obligación tengo que colocar primero la carpeta del proyecto, luego la sub-carpeta y por ultimo nombrar la imagen png.

(18-02-2024, 01:25 PM)Costero escribió: Por lo que veo  en la internet Linux no soporta ico. ico fue creado por Microsoft para Windows.

Yo no tengo tkinter pera esta es una posible solucion que he visto:


https://stackoverflow.com/questions/4536...inux-error
Código:
icon = PhotoImage(file='yourfile.ico')  
root.tk.call('wm', 'iconphoto', root._w, icon)

No tenia idea de que Linux no soporta archivos ico asi que utilice la segunda linea de código que me pasaste pero cambiando algunas cosas y usando un archivo png y me funciono.
Responder
#7
Tenemos un artículo sobre el tema: Íconos en ventanas de Tk (tkinter).
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 4 invitado(s)