Skip to main content

pyqt6-icon-theme

PyQt6 Dynamic Icon Theme Toolkit — Support automatic light/dark theme switching for SVG icons, with customizable color effects.

Features

  • SVG Dynamic Recoloring — Automatically strips original fill/stroke and applies any custom color
  • Theme Awareness — Automatically switches between black (light theme) and white (dark theme) when no custom color is set
  • Hover Effect — Switches icon color on mouse enter/leave
  • PNG / JPG Support — Renders raster images at any size while preserving original colors
  • Caching — Icons are cached by (name, color, size, keep_original) to avoid redundant rendering

Installation

pip install pyqt6-icon-theme

Usage

Import the library:

from pyqt6_icon_theme import IconManager, IconButton

Set the icon directory (supports .svg, .png, .jpg, .jpeg); the path name is customizable:

IconManager.set_icon_dir("icons")

IconButton

  • 1st parameter: icon file name — extension is optional
  • 2nd parameter: icon size in pixels
  • 3rd parameter: icon color in normal state — if None, the color is automatically detected from the window background (black on light, white on dark)
  • 4th parameter: icon color on hover — if None, no color change on hover
  • 5th parameter: preserve the SVG's original colors — if True, normal_color and hover_color are ignored; defaults to False
IconButton(name, size=16, normal_color=None, hover_color=None, keep_original=False)

Examples

# Auto color based on theme (light = black, dark = white)
btn = IconButton("user.svg", size=30)

# Custom color + hover effect
btn = IconButton("add.svg", size=36,
                 normal_color="#49ADF0",
                 hover_color="#F08884")

# Preserve SVG original colors (unaffected by theme)
btn = IconButton("edit.svg", size=40, keep_original=True)

# PNG/JPG — always displays original colors
btn = IconButton("delete.png", size=40)

Parameter Behavior Reference

Scenario normal_color hover_color keep_original Result
SVG, no color specified None None False Follows theme (black/white)
SVG, custom color "#49ADF0" "#F08884" False Custom color + hover
SVG, original colors — — True SVG rendered as-is
PNG / JPG ignored ignored ignored Always original colors

Icon Directory Structure

your_project/
├── icons/
│   ├── user.svg
│   ├── add.svg
│   ├── edit.svg
│   └── delete.png
└── main.py

All .svg, .png, .jpg, .jpeg files in the directory are loaded automatically.

Demo

See the Repository for details.

Metadata

Release files for pyqt6-icon-theme 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyqt6-icon-theme 0.1.5
File Size Uploaded
pyqt6_icon_theme-0.1.5.tar.gz 6.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyqt6-icon-theme 0.1.5
File Interpreter ABI Platform
pyqt6_icon_theme-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 13.4 kB

Release files / pyqt6_icon_theme-0.1.5.tar.gz

Download URL pyqt6_icon_theme-0.1.5.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b0e374ca067fb703204fd3db1c01aa64429b91d533d220f3a80280a3de9656a2
BLAKE2b-256 checksum
How to use checksums
dd0b14ffb7939305cd300eac995a7ed358a732bd9eb5f7e7ae91fbe186fe86e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.2 CPython/3.13.3 Windows/11

Release files / pyqt6_icon_theme-0.1.5-py3-none-any.whl

Download URL pyqt6_icon_theme-0.1.5-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8d26d7ce53614720762a1668ac14b778a99d115c8a24fdb99384980aa06a8ff7
BLAKE2b-256 checksum
How to use checksums
e810c728048a8b794027431ffaa03808044cd1bdd495e0ae39699566f7bbfd6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.2 CPython/3.13.3 Windows/11

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page