mirror of
https://github.com/chidiwilliams/buzz.git
synced 2026-03-16 23:55:51 +01:00
21 lines
849 B
Python
21 lines
849 B
Python
from PyQt6.QtGui import QIcon, QPixmap, QPainter, QColor
|
|
from PyQt6.QtWidgets import QWidget
|
|
|
|
|
|
# TODO: move icons to Qt resources: https://stackoverflow.com/a/52341917/9830227
|
|
class Icon(QIcon):
|
|
LIGHT_THEME_BACKGROUND = '#555'
|
|
DARK_THEME_BACKGROUND = '#AAA'
|
|
|
|
def __init__(self, path: str, parent: QWidget):
|
|
# Adapted from https://stackoverflow.com/questions/15123544/change-the-color-of-an-svg-in-qt
|
|
is_dark_theme = parent.palette().window().color().black() > 127
|
|
color = self.DARK_THEME_BACKGROUND if is_dark_theme else self.LIGHT_THEME_BACKGROUND
|
|
|
|
pixmap = QPixmap(path)
|
|
painter = QPainter(pixmap)
|
|
painter.setCompositionMode(QPainter.CompositionMode.CompositionMode_SourceIn)
|
|
painter.fillRect(pixmap.rect(), QColor(color))
|
|
painter.end()
|
|
|
|
super().__init__(pixmap)
|