Saltar al contenido

Establecer el icono de tkinter en Mac OS

Solución:

De acuerdo con la tk tcl documentación que puede querer probar wm iconphoto. Parece que puede ser compatible con OSX y también menciona configurar el archivo en alrededor de 512×512 para una reproducción fluida en MAC.

No tengo MAC, por lo que no puedo probar esto, pero inténtelo y avíseme si ayudó.

Actualizar:

Como @ l’L’l señalé, es posible que desee probar root.iconphoto(True, img). No puedo probarlo yo mismo debido a que no tengo Mac.

import tkinter as tk

root = tk.Tk()
img = tk.Image("photo", file="icon.gif")
# root.iconphoto(True, img) # you may also want to try this.
root.tk.call('wm','iconphoto', root._w, img)

root.mainloop()

Aquí está el texto relevante de la documentación aquí:

wm iconphoto window? -default? image1? image2 …? Establece el icono de la barra de título para la ventana en función de las imágenes fotográficas nombradas. Si se especifica -default, esto también se aplica a todos los niveles superiores creados en el futuro. Los datos de las imágenes se toman como instantánea en el momento de la invocación. Si las imágenes se cambian más tarde, esto no se refleja en los iconos de la barra de título. Se aceptan varias imágenes para permitir que se proporcionen diferentes tamaños de imágenes (por ejemplo, 16×16 y 32×32). El administrador de ventanas puede escalar los iconos proporcionados a un tamaño apropiado. En Windows, las imágenes se empaquetan en una estructura de iconos de Windows. Esto anulará un ico especificado en wm iconbitmap y viceversa.

En X, las imágenes se organizan en la propiedad _NET_WM_ICON X, que admiten la mayoría de los administradores de ventanas modernos. Un mapa de bits de iconos de wm puede existir simultáneamente. Se recomienda utilizar no más de 2 iconos, colocando primero el icono más grande.

En Macintosh, la primera imagen llamada se carga en un formato de icono nativo de OSX y se convierte en el icono de la aplicación en los cuadros de diálogo, el Dock y otros contextos. En el nivel del script, el comando aceptará solo la primera imagen pasada en los parámetros, ya que el soporte para múltiples tamaños / resoluciones en macOS está fuera del alcance de Tk. Los desarrolladores deben usar el icono más grande que puedan admitir (preferiblemente 512 píxeles) para garantizar una reproducción fluida en Mac.

Probé esto en Windows para asegurarme de que al menos funciona allí. Usé una imagen cuadrada azul para probar.

Si la documentación anterior es precisa, también debería funcionar en MAC.

ingrese la descripción de la imagen aquí

Si está utilizando Mac OS, debe utilizar una imagen .icns en lugar de una imagen .ico.

puedes usar:

from tkinter import Tk
from platform import system

platformD = system()
if platformD == 'Darwin':

    logo_image="images/logo.icns"

elif platformD == 'Windows':

    logo_image="images/logo.ico"

else:

    logo_image="images/logo.xbm"

root = Tk()
root.title("My App")
root.iconbitmap(logo_image)
root.resizable(0, 0)
root.mainloop()

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *