Ejemplo n.º 1
0
    def __init__(self, data, radius=15):

        self.data = data

        # Add circular node
        self.node = QGraphicsEllipseItem(0, 0, 1, 1)

        # Set radius
        self.radius = radius

        # Add text label
        self.label = QGraphicsTextItem(data.label)
        font = self.label.font()
        font.setPointSize(10)
        self.label.setFont(font)

        # Add line between label and node
        self.line1 = QGraphicsLineItem(0, 0, 1, 1)
        self.line2 = QGraphicsLineItem(0, 0, 1, 1)

        self.node.setZValue(20)
        self.label.setZValue(10)
        self.line1.setZValue(10)
        self.line2.setZValue(10)

        self.line1.setPen(get_pen('0.5'))
        self.line2.setPen(get_pen('0.5'))

        self.color = '0.8'
Ejemplo n.º 2
0
    def __init__(self,
                 parent=None,
                 width=1,
                 color1=QColor(0, 0, 0),
                 color2=QColor(255, 255, 255)):
        super(DualColoredLineSegment, self).__init__(parent)

        # create lines
        self.line_1 = QGraphicsLineItem()
        self.line_2 = QGraphicsLineItem()

        self.width = width
        self._length = 2
        self._spacing = 5

        # set pen
        self.setColor1(color1)
        self.setColor2(color2)

        # add lines to group
        self.addToGroup(self.line_1)
        self.addToGroup(self.line_2)
Ejemplo n.º 3
0
 def start_connecting(self, c, event):
     self.connection_in_progress_from = c
     x, y = c.get_connection_point()
     p1 = self.mapToParent(
         self.mapFromScene(c.parentItem().mapToScene(x, y)))
     x1 = p1.x()
     y1 = p1.y()
     p2 = self.mapFromScene(event.scenePos())
     self.connection_in_progress_line = QGraphicsLineItem(
         x1, y1, p2.x(), p2.y())
     self.connection_in_progress_line.setParentItem(self)
     self.connection_in_progress_line.setPen(QPen(highlight_color, 4))
     c.setPen(QPen(highlight_color, 4))
     self.set_hover_highlight_connectors(True)
Ejemplo n.º 4
0
    def __init__(self, longitudes, latitudes, parent=None):
        QGraphicsItem.__init__(self, parent=parent)
        MapItem.__init__(self)

        assert len(longitudes) == len(latitudes)
        assert len(longitudes) >= 2

        self._longitudes = np.array(longitudes, dtype=np.float64)
        self._latitudes = np.array(latitudes, dtype=np.float64)

        # Setup internal lines
        linesGroup = QGraphicsItemGroup(parent=self)
        self._linesGroup = linesGroup
        self._lines = [
            QGraphicsLineItem(parent=linesGroup)
            for i in iterRange(len(longitudes) - 1)
        ]
Ejemplo n.º 5
0
    def setAngledTexts(self, angledTexts: List[AngledText]) -> None:
        self._angledTexts = angledTexts

        self._lineItems.clear()
        self._textItems.clear()

        scene: QGraphicsScene = self.scene()
        for item in self.childItems():
            item: QGraphicsItem = item
            self.removeFromGroup(item)
            if scene is not None:
                scene.removeItem(item)

        for angledText in self._angledTexts:
            lineItem = QGraphicsLineItem(self.parentItem())
            self.addToGroup(lineItem)
            self._lineItems.append(lineItem)

            textItem = QGraphicsTextItem(self.parentItem())
            textItem.setPlainText(angledText.text)
            self.addToGroup(textItem)
            self._textItems.append(textItem)
Ejemplo n.º 6
0
    def setLonLat(self, longitudes, latitudes):
        assert len(longitudes) == len(latitudes)
        assert len(longitudes) >= 2

        self._longitudes = np.array(longitudes, dtype=np.float64)
        self._latitudes = np.array(latitudes, dtype=np.float64)

        old_lines = self._lines
        for line in old_lines:
            line.setParentItem(None)

        scene = self.scene()
        if scene is not None:
            for line in old_lines:
                scene.removeItem(line)

        linesGroup = self._linesGroup
        self._lines = [
            QGraphicsLineItem(parent=linesGroup)
            for i in iterRange(len(longitudes) - 1)
        ]

        if scene is not None:
            self.updatePosition(scene)
Ejemplo n.º 7
0
 def addLine(self, text, color, width=1.):
     shape = QGraphicsLineItem(10., 10., 20., 20.)
     pen = makePen(color, width=width)
     shape.setPen(pen)
     self.addEntry(MapLegendEntryItem(shape, text))