From c4addbeaeab027d3979968373d0a3ce3abbd8f0f Mon Sep 17 00:00:00 2001 From: KIU Shueng Chuan Date: Sun, 10 Jan 2021 16:27:24 +0800 Subject: [PATCH] workaround missing setStops binding --- pyqtgraph/colormap.py | 8 +++++++- pyqtgraph/graphicsItems/GradientEditorItem.py | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pyqtgraph/colormap.py b/pyqtgraph/colormap.py index 3661bf75..741cea08 100644 --- a/pyqtgraph/colormap.py +++ b/pyqtgraph/colormap.py @@ -359,7 +359,13 @@ class ColorMap(object): pos, color = self.getStops(mode=self.BYTE) color = [QtGui.QColor(*x) for x in color] - g.setStops(list(zip(pos, color))) + stops = zip(pos, color) + if hasattr(g, 'setStops'): + g.setStops(list(stops)) + else: + # PySide6 has a missing setStops binding + for pos, col in stops: + g.setColorAt(pos, col) return g def getColors(self, mode=None): diff --git a/pyqtgraph/graphicsItems/GradientEditorItem.py b/pyqtgraph/graphicsItems/GradientEditorItem.py index 6f5d9132..d763e965 100644 --- a/pyqtgraph/graphicsItems/GradientEditorItem.py +++ b/pyqtgraph/graphicsItems/GradientEditorItem.py @@ -626,9 +626,10 @@ class GradientEditorItem(TickSliderItem): def getGradient(self): """Return a QLinearGradient object.""" g = QtGui.QLinearGradient(QtCore.QPointF(0,0), QtCore.QPointF(self.length,0)) + stops = [] if self.colorMode == 'rgb': ticks = self.listTicks() - g.setStops([(x, QtGui.QColor(t.color)) for t,x in ticks]) + stops = [(x, QtGui.QColor(t.color)) for t,x in ticks] elif self.colorMode == 'hsv': ## HSV mode is approximated for display by interpolating 10 points between each stop ticks = self.listTicks() stops = [] @@ -641,7 +642,12 @@ class GradientEditorItem(TickSliderItem): x = x1 + dx*j stops.append((x, self.getColor(x))) stops.append((x2, self.getColor(x2))) + if hasattr(g, 'setStops'): g.setStops(stops) + else: + # PySide6 has a missing setStops binding + for pos, col in stops: + g.setColorAt(pos, col) return g def getColor(self, x, toQColor=True):