A System Tray application is always created on the taskbar. Whenever an application is closed by the user, it will get its state running on the taskbar. To identify a System Tray application, we can provide an image or icon to its application.
To create a System Tray icon of a Tkinter application, we can use the pystray module in Python. It has many inbuilt functions and methods that can be used to configure the System Tray icon of the application.
To install pystray in your machine, you can type "pip install pystray" command in your shell or command prompt.
To create a System Tray icon, you can follow the steps given below −
Import the required libraries − Pystray, Python PIL or Pillow.
Define a function hide_window() to withdraw the window and provide the icon to the system tray.
Add and define two menu items "Show" and "Quit".
Add a Command in the menu items by defining a function for Show and Quit.
Example
# Import the required libraries from tkinter import * from pystray import MenuItem as item import pystray from PIL import Image, ImageTk # Create an instance of tkinter frame or window win=Tk() win.title("System Tray Application") # Set the size of the window win.geometry("700x350") # Define a function for quit the window def quit_window(icon, item): icon.stop() win.destroy() # Define a function to show the window again def show_window(icon, item): icon.stop() win.after(0,win.deiconify()) # Hide the window and show on the system taskbar def hide_window(): win.withdraw() image=Image.open("image.ico") menu=(item('Quit', quit_window), item('Show', show_window)) icon=pystray.Icon("name", image, "title", menu) icon.run() win.protocol('WM_DELETE_WINDOW', hide_window) win.mainloop()
Output
If we run the above code, it will display the application window with some widgets and elements in it.
If we close the window, it will display the window icon in the taskbar menu.