Skip to main content

Provides systray integration

Project description

pystray Package Documentation

This library allows you to create a system tray icon.

Creating a system tray icon

In order to create a system tray icon, the class pystray.Icon is used:

import pystray

icon = pystray.Icon('test name')

In order for the icon to be displayed, we must provide an icon. This icon must be specified as a PIL.Image.Image:

from PIL import Image, ImageDraw

# Generate an image
image = Image.new('RGB', (width, height), color1)
dc = ImageDraw.Draw(image)
dc.rectangle((width // 2, 0, width, height // 2), fill=color2)
dc.rectangle((0, height // 2, width // 2, height), fill=color2)

icon.image = image

To ensure that your application runs on all platforms, you must then run the following code to show the icon:

def setup(icon):
    icon.visible = True

icon.run(setup)

The call to pystray.Icon.run() is blocking, and it must be performed from the main thread of the application. The reason for this is that the system tray icon implementation for OSX must be run from the main thread, and it requires the application runloop to be running. pystray.Icon.run() will start the runloop.

The code in setup() will be run in a separate thread once the system tray icon is ready. The icon does not wait for it to complete, so you may put any code that would follow the call to pystray.Icon.run() in it.

pystray.Icon.run() will not complete until ~pystray.Icon.stop() is called.

Release Notes

v0.3 - Proper Python 3 Support

  • Corrected Python 3 bugs.
  • Made Icon.run() mandatory on all platforms.

v0.2 - Initial Release

  • Support for adding a system tray icon on Linux, Mac OSX and Windows.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pystray, version 0.3
Filename, size File type Python version Upload date Hashes
Filename, size pystray-0.3-py2.7.egg (155.3 kB) File type Egg Python version 2.7 Upload date Hashes View
Filename, size pystray-0.3-py2-none-any.whl (231.0 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size pystray-0.3-py3.4.egg (62.3 kB) File type Egg Python version 3.4 Upload date Hashes View
Filename, size pystray-0.3-py3-none-any.whl (86.1 kB) File type Wheel Python version 3.4 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page