예제 #1
0
    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))
예제 #2
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)
예제 #3
0
    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)
예제 #4
0
 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.))
예제 #5
0
    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()
예제 #6
0
    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()
예제 #7
0
    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))
예제 #8
0
    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()
예제 #9
0
 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()
예제 #10
0
    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)