How to change Tkinter Window Icon

Tkinter is a popular GUI (Graphical User Interface) library in Python that provides a simple way to create desktop applications. You can customize the window icon using builtin functions like Tk(), PhotoImage(), and iconphoto().

Key Methods for Changing Window Icons

Tk()

Creates the main window of the tkinter application ?

root = Tk()

PhotoImage()

A class that loads and displays images. The file parameter specifies the image location ?

img = PhotoImage(file='image_path.png')

iconphoto()

Sets the window icon using a PhotoImage object. Takes two parameters: a boolean and the image variable ?

root.iconphoto(False, img)

If set to True, the image will be used for all windows. If False, only for the main window.

Using iconphoto() Method

Here's how to change the window icon using a PNG image ?

import tkinter as tk

# Create main window
root = tk.Tk()

# Load image (use a small PNG file, typically 16x16 or 32x32 pixels)
try:
    img = tk.PhotoImage(file='icon.png')
    root.iconphoto(False, img)
except tk.TclError:
    print("Image file not found, using default icon")

root.title("Custom Icon Window")
root.geometry("300x200")
root.mainloop()

Using wm_iconbitmap() for ICO Files

For Windows ICO files, use the wm_iconbitmap() method ?

import tkinter as tk

root = tk.Tk()

# Set icon using ICO file (Windows format)
try:
    root.wm_iconbitmap('icon.ico')
except tk.TclError:
    print("ICO file not found, using default icon")

root.title("ICO Icon Window")
root.geometry("300x200")
root.mainloop()

Default Tkinter Window

Without setting a custom icon, tkinter uses the default Tk icon ?

import tkinter as tk

root = tk.Tk()
root.title("Default Icon Window")
root.geometry("300x200")
root.mainloop()

Comparison of Icon Methods

Method File Format Platform Best For
iconphoto() PNG, GIF, PPM/PGM Cross-platform Modern applications
wm_iconbitmap() ICO, XBM Windows, Unix Traditional Windows apps

Key Points

  • Use PNG files with iconphoto() for crossplatform compatibility

  • Icon images should be small (16x16, 32x32, or 48x48 pixels)

  • Always handle file not found errors with tryexcept blocks

  • The iconphoto() method is preferred over wm_iconbitmap() for modern applications

Conclusion

Changing the Tkinter window icon helps customize your application's branding and visual identity. Use iconphoto() with PNG files for the best crossplatform compatibility, and always include error handling for missing image files.

Updated on: 2026-03-27T12:20:56+05:30

17K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements