diff options
Diffstat (limited to 'Lib/defconQt/objects')
| -rw-r--r-- | Lib/defconQt/objects/colorWidgets.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Lib/defconQt/objects/colorWidgets.py b/Lib/defconQt/objects/colorWidgets.py index f9708c7..f8b4010 100644 --- a/Lib/defconQt/objects/colorWidgets.py +++ b/Lib/defconQt/objects/colorWidgets.py @@ -1,4 +1,4 @@ -from PyQt5.QtCore import QSize, Qt +from PyQt5.QtCore import pyqtSignal, QSize, Qt from PyQt5.QtWidgets import (QColorDialog, QStyle, QStyleOptionFrame, QStylePainter, QWidget) @@ -11,9 +11,12 @@ class ColorVignette(QWidget): Inspired by ColorPreview and ColorSelector, by Mattia Basaglia. """ + colorChanged = pyqtSignal() + def __init__(self, color, parent=None): super().__init__(parent) self._color = color + self._margins = (0, 2, 0, -2) self._readOnly = False def color(self): @@ -31,6 +34,14 @@ class ColorVignette(QWidget): ok = dialog.exec_() if ok: self.setColor(dialog.currentColor()) + self.colorChanged.emit() + + def margins(self): + dx1, dy1, dx2, dy2 = self._margins + return (dx1, dy1, -dx2, -dy2) + + def setMargins(self, left, top, right, bottom): + self._margins = (left, top, -right, -bottom) def readOnly(self): return self._readOnly @@ -43,7 +54,7 @@ class ColorVignette(QWidget): panel.initFrom(self) panel.lineWidth = 2 panel.midLineWidth = 0 - panel.rect = panel.rect.adjusted(2, 2, -2, -2) + panel.rect = panel.rect.adjusted(*self._margins) panel.state = panel.state | QStyle.State_Sunken self.style().drawPrimitive(QStyle.PE_Frame, panel, painter, self) r = self.style().subElementRect(QStyle.SE_FrameContents, panel, self) |
