qtico

Tools for using cross-platform Qt icon themes.


Keywords
pyqt, icons
License
GPL-3.0
Install
pip install qtico==0.1

Documentation

QtICO

This package provides tools to manage PyQt icon themes.

The QIcon.fromTheme API works with icon themes following the freedesktop icon theme spec, which is great for Linux systems with installed and enabled themes, but not for Windows or OS X, which lack them.

To benefit, you just have to create a theme directory with the right structure and use this package’s functions:

icons (The default directory name)
├hicolor
│├16x16/apps/myapp.png
│├32x32/apps/myapp.png
│┆
│└scalable/apps/myapp.svg
└mypackage-builtin
 ├16x16
 │├actions
 ││├document-open.png
 ││┆
 │├mimetypes
 ││├application-x-mymime.png
 ┆┆┆

This package provides the following functions to ease bundling an in-memory icon theme for those systems:

write_theme_indices
Creates .index.theme files from the .png and .svg files.
write_resources
Create a .qrc and _rc.py file to import the icon data from. (Needs the .index.theme files)
write_iconset
Creates a iconset folder for OSX apps, e.g. via py2app, using the hicolor/<s>x<s>/apps/myapp.png files.
install_icon_theme
To be used in a running application to make the builtin icons available.

The hicolor/<s>x<s>/apps/myapp.png files can be

  1. installed to the system by packagers (/usr/share/icons/hicolor/…)
  2. subsequently used in a .desktop file (Icon=myapp)
  3. used as window icon (self.setWindowIcon(QIcon.fromTheme('myapp')))