def gradient_darker(grad, factor): """Return a copy of the QGradient darkened by factor. .. note:: Only QLinearGradeint and QRadialGradient are supported. """ if type(grad) is QGradient: if grad.type() == QGradient.LinearGradient: grad = sip.cast(grad, QLinearGradient) elif grad.type() == QGradient.RadialGradient: grad = sip.cast(grad, QRadialGradient) if isinstance(grad, QLinearGradient): new_grad = QLinearGradient(grad.start(), grad.finalStop()) elif isinstance(grad, QRadialGradient): new_grad = QRadialGradient(grad.center(), grad.radius(), grad.focalPoint()) else: raise TypeError new_grad.setCoordinateMode(grad.coordinateMode()) for pos, color in grad.stops(): new_grad.setColorAt(pos, color.darker(factor)) return new_grad
def gradient_darker(grad, factor): """Return a copy of the QGradient darkened by factor. .. note:: Only QLinearGradeint and QRadialGradient are supported. """ if type(grad) is QGradient: if grad.type() == QGradient.LinearGradient: grad = sip.cast(grad, QLinearGradient) elif grad.type() == QGradient.RadialGradient: grad = sip.cast(grad, QRadialGradient) if isinstance(grad, QLinearGradient): new_grad = QLinearGradient(grad.start(), grad.finalStop()) elif isinstance(grad, QRadialGradient): new_grad = QRadialGradient(grad.center(), grad.radius(), grad.focalPoint()) else: raise TypeError new_grad.setCoordinateMode(grad.coordinateMode()) for pos, color in grad.stops(): new_grad.setColorAt(pos, color.darker(factor)) return new_grad
def create_gradient(base_color, stop=QPointF(0, 0), finalStop=QPointF(0, 1)): """ Create a default linear gradient using `base_color` . """ grad = QLinearGradient(stop, finalStop) grad.setStops([(0.0, base_color), (0.5, base_color), (0.8, base_color.darker(105)), (1.0, base_color.darker(110)), ]) grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) return grad
def update_items(self): rect_cls = QGraphicsRectItem nobrush = QBrush(Qt.NoBrush) nopen = QPen(QColor('#FFFFFF')) grad = Qt.NoBrush self.item = rect_cls() for codon in self.codons.keys(): rectitem = rect_cls(self.width, self.margin, self.w, self.h, parent=self.item) total_rea = len(self.aa_list[codon]) if total_rea > 0: grad = QLinearGradient(QPointF(0, 0.5), QPointF(1, 0.5)) grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) pointpos = 1.0 / total_rea starting = -0.001 for reqcol, aa in enumerate(self.aa_list[codon]): curcol = self.bgcolor[aa] # use the same color twice to mark start and end grad.setColorAt(starting + 0.001, curcol) starting += pointpos grad.setColorAt(starting, curcol) # grad.setColorAt(starting, QColor(curcol)) # put small rec in big rec # Comment award of the year ! brush = QBrush(QColor('#CCCCCC')) pen = QPen(QColor('#BBBBBB')) if self.codons[codon]: brush = QBrush(grad) pen = QPen(QColor('#000000')) rectitem.setBrush(brush) rectitem.setPen(pen) # Center text according to rectitem size text = QGraphicsSimpleTextItem(self.codons[codon], parent=rectitem) text.setFont(self.font) text.setBrush(self.fgcolor) center = rectitem.boundingRect().center() txtw = text.boundingRect().width() txth = text.boundingRect().height() text.setPos(center.x() - txtw / 2, center.y() - txth / 2) self.width += self.w + self.margin # now plot the big rect (with margin) self.item.setPen(nopen) self.item.setBrush(nobrush) self.item.setRect(0, 0, self.width, self.h + (2 * self.margin))
def create_gradient(base_color, stop=QPointF(0, 0), finalStop=QPointF(0, 1)): """ Create a default linear gradient using `base_color` . """ grad = QLinearGradient(stop, finalStop) grad.setStops([ (0.0, base_color), (0.5, base_color), (0.8, base_color.darker(105)), (1.0, base_color.darker(110)), ]) grad.setCoordinateMode(QLinearGradient.ObjectBoundingMode) return grad
def __init__(self, parent=None): ChartView.__init__(self, parent) self.dataSource = None pen = QPen() pen.setColor(QColor(20, 158, 11)) pen.setWidthF(self.LINE_WIDTH) self.linePen = pen gradient = QLinearGradient(0, 0, 0, 1) gradient.setCoordinateMode(QLinearGradient.ObjectBoundingMode) gradient.setColorAt(0, QColor(93, 188, 86)) # dark green gradient.setColorAt(1, QColor(164, 216, 158)) # light green self.graphBrush = QBrush(gradient) gradient = QLinearGradient(0, 0, 0, 1) gradient.setCoordinateMode(QLinearGradient.ObjectBoundingMode) gradient.setColorAt(0, Qt.darkGray) gradient.setColorAt(1, Qt.lightGray) self.graphFutureBrush = QBrush(gradient)
def gradientFromColor(color): gradient = QLinearGradient(0, 0, 0, 1) gradient.setCoordinateMode(QLinearGradient.ObjectBoundingMode) gradient.setColorAt(0, color) gradient.setColorAt(1, color.lighter()) return gradient
series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) \ << QPointF(12, 6) << QPointF(16, 7) << QPointF(18, 5) series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) \ << QPointF(12, 3) << QPointF(16, 4) << QPointF(18, 3) series = QAreaSeries(series0, series1) series.setName("Batman") pen = QPen(0x059605) pen.setWidth(3) series.setPen(pen) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1)) gradient.setColorAt(0.0, QColor(0x3cc63c)) gradient.setColorAt(1.0, QColor(0x26f626)) gradient.setCoordinateMode(QGradient.ObjectBoundingMode) series.setBrush(gradient) chart = QChart() chart.addSeries(series) chart.setTitle("Simple areachart example") chart.createDefaultAxes() chart.axisX().setRange(0, 20) chart.axisY().setRange(0, 10) chartView = QChartView(chart) chartView.setRenderHint(QPainter.Antialiasing) window = QMainWindow() window.setCentralWidget(chartView) window.resize(400, 300)