def setupPainter(self, painter, orientation, x1, y1, x2, y2): highlight = self.palette().color(QtGui.QPalette.Highlight) gradient = QtGui.QLinearGradient(x1, y1, x2, y2) gradient.setColorAt(0, highlight.lighter(108)) gradient.setColorAt(1, highlight.lighter(108)) painter.setBrush(gradient) if orientation == QtCore.Qt.Horizontal: painter.setPen(QtGui.QPen(highlight.darker(130), 0)) else: painter.setPen(QtGui.QPen(highlight.darker(150), 0))
def itemChange(self, change, value): """ Callback when item has been modified (move...) """ # hack to update start and end points: if change == QtGui.QGraphicsItem.ItemVisibleHasChanged: try: srcGraphical = filter(lambda x: isinstance(x(), Connector), self.srcBBox().listeners)[0]() dstGraphical = filter(lambda x: isinstance(x(), Connector), self.dstBBox().listeners)[0]() srcGraphical.notify_position_change() dstGraphical.notify_position_change() except: # possible errors : # -filter yielded an empty list: index out of range # -item 0 of list is a weakref whose refered object has died # -other. pass elif (change == QtGui.QGraphicsItem.ItemSelectedChange): if (bool(value)): color = QtCore.Qt.blue else: color = QtCore.Qt.black self.setPen( QtGui.QPen(color, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) return QtGui.QGraphicsItem.itemChange(self, change, value)
def paint(self, painter, paintOptions, widget): myRect = self.boundingRect() painter.fillRect(self.__headerRect, self.__darkerColor) gradTop = self.__headerRect.bottomLeft() gradBot = gradTop + QtCore.QPointF(0, 4) gradient = QtGui.QLinearGradient(gradTop, gradBot) gradient.setColorAt(0, self.__shadowColor) gradient.setColorAt(1, self.__color) brush = QtGui.QBrush(gradient) bottomRect = myRect.adjusted(0, self.__headerRect.bottom(), 0, 0) painter.fillRect(bottomRect, brush) if not safeEffects: oldPen = painter.pen() pen = QtGui.QPen() pen.setColor(QtGui.QColor(10, 10, 10, 100)) pen.setWidth(1) painter.setPen(pen) painter.drawRect(myRect.adjusted(0.5, 0.5, -0.5, -0.5)) painter.setPen(oldPen) painter.setBrush(QtGui.QBrush(self.__darkerColor)) painter.drawConvexPolygon(self.__handlePoly)
def __init__(self, parent=None): QtGui.QGraphicsRectItem.__init__(self, parent) AleaQGraphicsVanishingMixin.__init__(self) self.setPen(QtGui.QPen(QtCore.Qt.NoPen)) self.setFlag(QtGui.QGraphicsItem.ItemIgnoresTransformations, True) self.__layout = HorizontalLayout(parent=None, margins=(2., 2., 2., 2.), innerMargins=(1., 1.), center=True, mins=(20., 20.))
def __init__(self, vertex, graph, parent=None): QtGui.QGraphicsEllipseItem.__init__(self, 0.0, 0.0, self.__vertex_size__.width(), self.__vertex_size__.height(), parent) Vertex.__init__(self, vertex, graph) self.setZValue(1.0) #we choose the avocado colors self.setBrush(QtGui.QBrush(QtCore.Qt.yellow)) pen = QtGui.QPen(QtCore.Qt.darkGreen) pen.setWidth(self.__border_size__ - 2) self.setPen(pen) self.initialise_from_model()
def paint_data(self, data, painter, rectangle, option=None): painter.save() pen = QtGui.QPen() if option and option.state & QtGui.QStyle.State_Selected: painter.fillRect(option.rect, option.palette.highlight()) pen.setColor(option.palette.highlightedText().color()) else: pen.setColor(QtCore.Qt.blue) painter.setPen(pen) painter.setRenderHint(painter.Antialiasing, True) text_option = QtGui.QTextOption() text_option.setAlignment(QtCore.Qt.AlignHCenter) painter.drawText(QtCore.QRectF(rectangle), data, text_option) painter.restore()
def __init__(self, edge=None, graph=None, src=None, dst=None): Element.__init__(self, edge, graph) self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable) self.setZValue(0.5) self.srcPoint = QtCore.QPointF() self.dstPoint = QtCore.QPointF() self.__edge_creator = self.set_edge_creator(edgefactory.LinearEdgePath()) self.setPen(QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) self.dstBBox = self.srcBBox = None if src is not None: self.set_observed_source(src) if dst is not None: self.set_observed_destination(dst) self.setPath(self.__edge_creator.get_path(self.srcPoint, self.dstPoint))
def paint_data(self, data, painter, rectangle, option=None, **kwargs): if data is None: return painter.save() if option: rectangle = option.rect pen = QtGui.QPen() if option.state & QtGui.QStyle.State_Selected: pen.setColor(option.palette.highlightedText().color()) painter.setPen(pen) painter.setRenderHint(painter.Antialiasing, True) painter.fillRect(rectangle, option.palette.highlight()) x = rectangle.x() y = rectangle.y() size = min(rectangle.width(), rectangle.height()) frame = QtCore.QRectF(x, y, size, size) painter.drawImage(frame, to_image(data)) painter.restore()
def paintEvent(self, paintEvent): if self.showLines: maxheight = self.editor.viewport().height() maxline = self.editor.document().blockCount() painter = QtGui.QPainter(self) painter.setPen(QtGui.QPen(QtGui.QColor(100, 100, 100))) h = 0 line = -1 while h < maxheight and line < maxline: cursor = self.editor.cursorForPosition(QtCore.QPoint(1, h)) nline = cursor.blockNumber() + 1 rect = self.editor.cursorRect(cursor) if nline > line: line = nline painter.drawText( 0, rect.top() + 2, 40, rect.height() + 2, QtCore.Qt.AlignHCenter | QtCore.Qt.AlignTop, str(line)) h = rect.top() + rect.height() + 1 painter.end()
def drawSpan(self, painter, rect): opt = QtGui.QStyleOptionSlider() QtGui.QSlider.initStyleOption(self, opt) # area groove = self.style().subControlRect(QtGui.QStyle.CC_Slider, opt, QtGui.QStyle.SC_SliderGroove, self) if opt.orientation == QtCore.Qt.Horizontal: groove.adjust(0, 0, -1, 0) else: groove.adjust(0, 0, 0, -1) # pen & brush painter.setPen(QtGui.QPen(self.gradientLeft, 0)) if opt.orientation == QtCore.Qt.Horizontal: self.setupPainter(painter, opt.orientation, groove.center().x(), groove.top(), groove.center().x(), groove.bottom()) else: self.setupPainter(painter, opt.orientation, groove.left(), groove.center().y(), groove.right(), groove.center().y()) # draw groove intersected = QtCore.QRectF(rect.intersected(groove)) gradient = QtGui.QLinearGradient(intersected.topLeft(), intersected.topRight()) gradient.setColorAt(0, self.gradientLeft) gradient.setColorAt(1, self.gradientRight) painter.fillRect(intersected, gradient)