Pregunta

¿Alguien sabe cómo hacer que el icono no se muestra?Estoy buscando una manera de no tener ningún icono en absoluto.

¿Fue útil?

Solución

En Windows

Paso uno:

Crear un icono transparente utilizando un editor de iconos, o un sitio como rw-diseñador . Guardarlo como transparent.ico.

Segundo paso:

from tkinter import *

tk = Tk()
tk.iconbitmap(default='transparent.ico')
lab = Label(tk, text='Window with transparent icon.')
lab.pack()
tk.mainloop()

En Unix

Algo similar, pero usando un icono xbm.

Otros consejos

Al igual que en la respuesta aceptada (con el aire de ser más feo):

import tkinter
import tempfile

ICON = (b'\x00\x00\x01\x00\x01\x00\x10\x10\x00\x00\x01\x00\x08\x00h\x05\x00\x00'
        b'\x16\x00\x00\x00(\x00\x00\x00\x10\x00\x00\x00 \x00\x00\x00\x01\x00'
        b'\x08\x00\x00\x00\x00\x00@\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
        b'\x00\x01\x00\x00\x00\x01') + b'\x00'*1282 + b'\xff'*64

_, ICON_PATH = tempfile.mkstemp()
with open(ICON_PATH, 'wb') as icon_file:
    icon_file.write(ICON)

tk = tkinter.Tk()
tk.iconbitmap(default=ICON_PATH)
label = tkinter.Label(tk, text="Window with transparent icon.")
label.pack()

tk.mainloop()

Simplemente crea el archivo sobre la marcha en su lugar, por lo que no tiene que llevar un archivo adicional alrededor. Utilizando el mismo método, también se puede hacer un icono '' .xbm para Unix.

Edit: El ICON se puede acortar aún más gracias a @Magnus Hoff :

import base64, zlib

ICON = zlib.decompress(base64.b64decode('eJxjYGAEQgEBBiDJwZDBy'
    'sAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc='))

Por lo que yo sé, el más cercano se llega a un icono "en blanco" está utilizando uno que sea del mismo color que la barra de título de la ventana. Pero, de nuevo una gran cantidad de usuarios utilizan diferentes temas de color, por lo que no repasará muy bien.

Sin embargo, si se utiliza py2exe se puede usar algo como Resource Hacker puede alternar el icono. Pero en el estado de texto programas de Python, lo mejor que puede hacer es reemplazar. Tipo de archivos Jar cómo utilizar el icono de Java, aplicaciones Tkinter tendrá el icono de los conocimientos tradicionales. Después de todo ... como java, su aplicación está siendo traducido por un programa intermedio. Desde otro programa se está ejecutando su código, tiene que modificar ese otro programa. Por suerte Python / TK es un poco más flexible que la JVM en términos de iconos para que pueda reemplazar el icono. Pero la eliminación por completo no es actualmente una opción.

-John

basan en las respuestas anteriores i utiliza esta solución:

from PIL import ImageTk
import zlib,base64
import Tkinter

icon=zlib.decompress(base64.b64decode('eJxjYGAEQgEBBiDJwZDBy'
'sAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc='))
root=Tkinter.Tk()
image=ImageTk.PhotoImage(data=icon)
root.tk.call('wm', 'iconphoto', root._w, image)
root.mainloop()

Actualización:

El modificado ligeramente el código (try la cláusula en lugar de if TkVersion), que produce una transparente (no) icono:

Linux (Mint 18.1), Python 2.7

Linux (Mint 18.1), Python 3.5.1

Windows 10, Python 2.7.13

Se produce un icono negro (no de trabajo) en:

Windows 8.1, Python 3.6

Una más vieja pregunta, pero las soluciones no fueron a trabajar para mí.He encontrado una parcial solución simple, con una pregunta de seguimiento, de mi propia.

La solución parcial (Tk 8.5, ver más abajo) - el uso de foto imagen del blank() método:

from Tkinter import *

root=Tk()

icon=PhotoImage(height=16, width=16)
icon.blank()

root.tk.call('wm', 'iconphoto', self.master._w, icon)

root.mainloop()

En Python 2.7, Windows 10, esto funciona bien, la producción de la deseada "no hay ningún icono" para su nueva aplicación.

Sin embargo, en Python 3.6, Win 8.1, este atascos de la interfaz gráfica de usuario, que creo que está relacionado con los nuevos conocimientos tradicionales 8.6, y aunque me encontré con que el nuevo 8.6 notación de uso wm_iconphoto() pasa unjammed en este caso:

try:
    from tkinter import *
except:
    from Tkinter import * 

root=Tk()

#Identical for Py2.7/Tk8.5 and Py3.5/Tk8.6
icon=PhotoImage(height=16, width=16)
icon.blank()

#Picking a notaion based on Tk version to avoid jamming
try:
    root.wm_iconphoto('True', icon)   #New Tk 8.6 style        
else:
    #Jams Python 3.5 with Tk 8.6 on Windows
    root.tk.call('wm', 'iconphoto', self.master._w, icon)   



root.mainloop()

Se produce un icono negro en 3.6, en lugar de la transparencia, en caso de 2.7/8.5.

Podría ser una manera de establecer los píxeles transparentes, uno por uno, utilizando "transparencia" - http://wiki.tcl.tk/1449

Sin embargo, no sé si incluso es factible a través de Tkinter.Dios favorece a los audaces, toca a los demás, aunque?

Actualizado pregunta:¿Por qué no esta el trabajo en Py3.6/Windows?

Alternativa a soluation @ de ubomb para añadir imágenes personalizadas mediante la utilización de Tkinter.PhotoImage de soporte integrado para el procesamiento de imágenes .gif.

A partir de archivo:

icon = Tkinter.PhotoImage(file="logo.gif")

de base 64:

gif_base64_string = """ R0lGODdhEAAQAIcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh ... 4B8AAP9Ci/4HoLTpfwD+qV4NoHVAADs= """

icon = Tkinter.PhotoImage(data=gif_base64_string)

effbot.org enlace para más detalles:

http://effbot.org/tkinterbook/photoimage.htm

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top