Como definir o ícone da janela em Tkinter

Jinku Hu 30 janeiro 2023
  1. root.iconbitmap para definir o Ícone da Janela
  2. tk.call('wm', 'Iconphoto', ) Método para definir o ícone da janela
  3. root.iconphoto para Definir Ícone da Janela
Como definir o ícone da janela em Tkinter

Vamos introduzir métodos para definir o ícone da janela no Tkinter.

  1. ‘root.iconbitmap’ para definir o ícone da janela
  2. root.tk.call() para definir o ícone da janela
  3. root.iconphoto para definir o ícone da janela

root.iconbitmap para definir o Ícone da Janela

import tkinter as tk

root = tk.Tk()

root.iconbitmap("/path/to/ico/icon.ico")
root.mainloop()

iconbitmap(bitmap) define o ícone do widget window/frame como bitmap. O bitmap deve ser do tipo ico, mas não png ou jpg, caso contrário, a imagem não será exibida como o ícone.

Ícone da janela Tkinter set

A imagem acima mostra quando o tipo ico é utilizado em iconbitmap.

Se você utilizar o tipo png, o ícone mostrado na janela ficará em branco,

Ícone da janela do Tkinter set com png

tk.call('wm', 'Iconphoto', ) Método para definir o ícone da janela

import tkinter as tk

root = tk.Tk()

root.tk.call("wm", "iconphoto", root._w, tk.PhotoImage(file="/path/to/ico/icon.png"))

root.mainloop()

O método tk.call é a interface Tkinter para o interpretador tcl. Nós poderíamos executar um comando tcl utilizando este método call.

É útil quando o Tkinter wrapper não poderia ter acesso a algumas funcionalidades tcl/tk.

wm se comunica com o gerenciador de janelas.

Precisamos definir a imagem como tk.PhotoImage mas não a imagem em si, caso contrário teremos um erro _tkinter.TclError.

root.iconphoto para Definir Ícone da Janela

Outro método para definir o ícone da janela é utilizar root.iconphoto() método que aceita mais tipos de imagens como em tk.call('wm', 'iconphoto', ).

import tkinter as tk

root = tk.Tk()

root.iconphoto(False, tk.PhotoImage(file="/path/to/ico/icon.png"))
root.mainloop()

Aqui, False significa que esta imagem de ícone se aplica apenas a esta janela específica, mas não a futuros toplevels criados.

Se True for utilizado, a imagem de ícone é aplicada a todos os futuros toplevels criados também.

Autor: 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 Facebook