def displayPlot(self): QGraphicsScene.clear(self) self.sceneRect() fm = QFontMetrics(QFont()) # display lines fitting in sceneRect last = None for z1, z2, text in self.data: brush = QBrush( QColor.fromHsl(z2 / (self.zMax - self.zMin) * 360.0, 128, 128) ) self.addRect( self.xOffset + self.legendWidth, z1 * self.zScale + self.yOffset, self.barWidth, (z2 - z1) * self.zScale, QPen(), brush, ) if last is None: legend_item = self.addSimpleText("{}".format(z1)) legend_item.setPos(self.xOffset, z1 * self.zScale + self.yOffset) legend_item = self.addSimpleText("{}".format(z2)) legend_item.setPos(self.xOffset, z2 * self.zScale + self.yOffset) last = z2 text_item = self.addSimpleText(text) text_item.setPos( self.xOffset * 2 + self.legendWidth + self.barWidth, (z1 + z2) / 2.0 * self.zScale - fm.height() / 2.0 + self.yOffset, )
def testColorAsHslaComponents(self): self.assertEqual( QgsMapBoxGlStyleConverter.colorAsHslaComponents( QColor.fromHsl(30, 50, 70)), (30, 19, 27, 255))