PyQt doesn't provide repr for QColor, but it's highly desirable!

So monkey patch one in ourselves
This commit is contained in:
Nyall Dawson 2023-04-04 09:51:47 +10:00
parent 973549cd49
commit 7e0e421af7

View File

@ -22,3 +22,48 @@ __date__ = 'November 2015'
__copyright__ = '(C) 2015, Matthias Kuhn'
from PyQt5.QtGui import *
def __qcolor_repr__(self: QColor):
if not self.isValid():
return '<QColor: invalid>'
elif self.spec() == QColor.Rgb:
return '<QColor: RGB {}, {}, {}, {}>'.format(
self.red(),
self.green(),
self.blue(),
self.alpha()
)
elif self.spec() == QColor.Hsv:
return '<QColor: HSV {}, {}, {}, {}>'.format(
self.hsvHue(),
self.hsvSaturation(),
self.value(),
self.alpha()
)
elif self.spec() == QColor.Cmyk:
return '<QColor: CMYK {}, {}, {}, {}, {}>'.format(
self.cyan(),
self.magenta(),
self.yellow(),
self.black(),
self.alpha()
)
elif self.spec() == QColor.Hsl:
return '<QColor: HSL {}, {}, {}, {}>'.format(
self.hslHue(),
self.hslSaturation(),
self.lightness(),
self.alpha()
)
elif self.spec() == QColor.ExtendedRgb:
return '<QColor: Extended RGB {}, {}, {}, {}>'.format(
self.redF(),
self.greenF(),
self.blueF(),
self.alphaF()
)
# PyQt doesn't provide __repr__ for QColor, but it's highly desirable!
QColor.__repr__ = __qcolor_repr__