El método iconphoto() se utiliza para configurar el icono de la barra de título de cualquier ventana tkinter/toplevel. Pero para establecer cualquier imagen como icono de la barra de título, la imagen debe ser el objeto de la clase PhotoImage .
Sintaxis:
iconphoto(self, default = False, *args)
Pasos para configurar la imagen del icono –
from tkinter import Tk master = Tk() photo = PhotoImage(file = "Any image file") master.iconphoto(False, photo)
Establezca el icono de la barra de título para esta ventana en función de las imágenes de fotos nombradas pasadas a través de argumentos. Si el valor predeterminado es True , esto también se aplica a todos los niveles superiores creados en el futuro. Los datos de las imágenes se toman como una instantánea en el momento de la invocación. Si las imágenes se modifican posteriormente, esto no se refleja en los iconos de la barra de título. La función también escala los iconos provistos a un tamaño apropiado.
Código #1: Cuando se proporciona PhotoImage.
Python3
# Importing Tkinter module from tkinter import * from tkinter.ttk import * # Creating master Tkinter window master = Tk() # Creating object of photoimage class # Image should be in the same folder # in which script is saved p1 = PhotoImage(file = 'info.png') # Setting icon of master window master.iconphoto(False, p1) # Creating button b = Button(master, text = 'Click me !') b.pack(side = TOP) # Infinite loop can be terminated by # keyboard or mouse interrupt # or by any predefined function (destroy()) mainloop()
Producción:
Excepción: si proporciona una imagen directamente en lugar del objeto PhotoImage, se mostrará el siguiente error.
Código #2: Cuando no se proporciona el objeto PhotoImage.
Python3
# Importing Tkinter module from tkinter import * from tkinter.ttk import * # Creating master Tkinter window master = Tk() # Setting icon of master window master.iconphoto(False, 'info.png') # Creating button b = Button(master, text = 'Click me !') b.pack(side = TOP) # Infinite loop can be terminated by # keyboard or mouse interrupt # or by any predefined function (destroy()) mainloop()
Producción:
Traceback (most recent call last): File "C:\Users\Admin\Documents\GUI_python\geeks.py", line 14, in master.iconphoto(False, 'info.png') File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1910, in wm_iconphoto self.tk.call('wm', 'iconphoto', self._w, *args) _tkinter.TclError: can't use "info.png" as iconphoto: not a photo image
Publicación traducida automáticamente
Artículo escrito por sanjeev2552 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA