Python PyQt4.QtGui 模块,QGraphicsLineItem() 实例源码

我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用PyQt4.QtGui.QGraphicsLineItem()

项目:siren    作者:ozsolarwind    | 项目源码 | 文件源码
def delStation(self, st):  # remove stations graphic items
        if self.view.scene()._current_name.text() == st.name:
            self.view.scene()._current_name.setText('')
        try:  # ignore error to cater for duplicate station names in different scenarios
            for itm in self.view.scene()._stationGroups[st.name]:
             #    if isinstance(self._stationGroups[self.lines.lines[i].name][j], QtGui.QGraphicsLineItem):
                try:
                    self.view.scene().removeItem(itm)  # here's the error
                except:
                    self.scene().removeItem(itm)
            del self.view.scene()._stationGroups[st.name]
        except:
            pass
        for i in range(len(self.view.scene().lines.lines) - 1, -1, -1):
            if self.view.scene().lines.lines[i].name == st.name:
                del self.view.scene().lines.lines[i]
项目:siren    作者:ozsolarwind    | 项目源码 | 文件源码
def refreshGrid(self):
        for i in range(self.grid_lines):
            if self.lines.lines[i].peak_load is not None:
                self.lines.lines[i].peak_dispatchable = 0.
                self.lines.lines[i].peak_load = 0.
                self.lines.lines[i].peak_loss = 0.
        if self.new_grid:
            for i in range(len(self.lines.lines) - 1, self.grid_lines - 1, -1):
                if self.lines.lines[i].peak_load is not None:
                    self.lines.lines[i].peak_dispatchable = 0.
                    self.lines.lines[i].peak_load = 0.
                    self.lines.lines[i].peak_loss = 0.
                if self.lines.lines[i].length > 0:
                    try:
                        for j in range(len(self._stationGroups[self.lines.lines[i].name])):
                            if isinstance(self._stationGroups[self.lines.lines[i].name][j], QtGui.QGraphicsLineItem):
                                self.removeItem(self._stationGroups[self.lines.lines[i].name][j])
                                del self._stationGroups[self.lines.lines[i].name][j]
                                break
                    except:
                        pass
                    del self.lines.lines[i]
            for st in self._stations.stations:
                self.addLine(st)
项目:CPNSimulatorGui    作者:chris-kuhr    | 项目源码 | 文件源码
def mouseDoubleClickEvent (self, event):
        '''Edit arc annotation on `QtGui.mouseDoubleClickEvent`.

        :param event: `QtGui.mouseDoubleClickEvent`.
        '''
#         pos = event.pos()
        self.parent.diag = NameDialog( parent=self.parent.editor, title="Rename %s %s"%( type(self.parent), self.parent.name ), default=self.parent.name)
        self.parent.diag.accepted.connect(self.parent.rename)
        self.parent.diag.show()
        QtGui.QGraphicsLineItem.mouseDoubleClickEvent(self, event)
    #-----------------------------------------------------------------------------------------------

#========================================================================================================================
项目:siren    作者:ozsolarwind    | 项目源码 | 文件源码
def _setupGrid(self):
        def do_them(lines, width=self.line_width, grid2=False):
            for line in lines:
                color = QtGui.QColor()
                color.setNamedColor(line.style)
                pen = QtGui.QPen(color, width)
                pen.setJoinStyle(QtCore.Qt.RoundJoin)
                pen.setCapStyle(QtCore.Qt.RoundCap)
                start = self.mapFromLonLat(QtCore.QPointF(line.coordinates[0][1], line.coordinates[0][0]))
                for pt in range(1, len(line.coordinates)):
                    end = self.mapFromLonLat(QtCore.QPointF(line.coordinates[pt][1], line.coordinates[pt][0]))
                    ln = QtGui.QGraphicsLineItem(QtCore.QLineF(start, end))
                    ln.setPen(pen)
                    ln.setZValue(0)
                    self.addItem(ln)
                    if grid2:
                        self._gridGroup2.addToGroup(ln)
                    else:
                        self._gridGroup.addToGroup(ln)
                    start = end
            return
        self.lines = Grid()
        do_them(self.lines.lines)
        self.grid_lines = len(self.lines.lines)
        lines = Grid_Boundary()
        if len(lines.lines) > 0:
            lines.lines[0].style = self.colors['grid_boundary']
            do_them(lines.lines, width=0)
        if self.existing_grid2:
            lines2 = Grid(grid2=True)
            do_them(lines2.lines, grid2=True)
项目:siren    作者:ozsolarwind    | 项目源码 | 文件源码
def show_Grid(self):
        comment = 'Grid Toggled '
        if self.view.scene().show_grid:
            self.view.scene().show_grid = False
            self.view.scene()._gridGroup.setVisible(False)
            self.showGrid.setIcon(QtGui.QIcon('blank.png'))
            comment += 'Off'
        else:
            if self.view.scene()._gridGroup is None:
                self.view.scene()._gridGroup = QtGui.QGraphicsItemGroup()
                self.view.scene().addItem(self.view.scene()._gridGroup)
                color = QtGui.QColor()
                color.setNamedColor((self.view.scene().colors['grid']))
                pen = QtGui.QPen(color, self.view.scene().line_width)
                pen.setJoinStyle(QtCore.Qt.RoundJoin)
                pen.setCapStyle(QtCore.Qt.RoundCap)
                for lat in range(90, -90, -10):
                    if lat == 90:
                        continue
                    fromm = self.mapFromLonLat(QtCore.QPointF(-180, lat))
                    too = self.mapFromLonLat(QtCore.QPointF(180, lat))
                    item = QtGui.QGraphicsLineItem(fromm.x(), fromm.y(), too.x(), too.y())
                    item.setPen(pen)
                    item.setZValue(3)
                    self.view.scene()._gridGroup.addToGroup(item)
                for lon in range(-180, 181, 10):
                    fromm = self.mapFromLonLat(QtCore.QPointF(lon, self.view.scene().map_upper_left[0]))
                    too = self.mapFromLonLat(QtCore.QPointF(lon, self.view.scene().map_lower_right[0]))
                    item = QtGui.QGraphicsLineItem(fromm.x(), fromm.y(), too.x(), too.y())
                    item.setPen(pen)
                    item.setZValue(3)
                    self.view.scene()._gridGroup.addToGroup(item)
            self.view.scene().show_grid = True
            self.view.scene()._gridGroup.setVisible(True)
            self.showGrid.setIcon(QtGui.QIcon(self.view.scene().check_icon))
            comment += 'On'
        self.view.emit(QtCore.SIGNAL('statusmsg'), comment)
项目:dxf2gcode    作者:cnc-club    | 项目源码 | 文件源码
def __init__(self,line):
        QtGui.QGraphicsLineItem.__init__(self,line)
项目:dxf2gcode    作者:cnc-club    | 项目源码 | 文件源码
def paint(self, painter, options, widget):
        print "Painting"
        QtGui.QGraphicsLineItem.paint(self, painter,options,widget)
        #self.setPen(QPen(Qt.red))
项目:dxf2gcode    作者:cnc-club    | 项目源码 | 文件源码
def mousePressEvent(self, mouseEvent):
        if (mouseEvent.button() != QtCore.Qt.LeftButton):
            return

        if self.myMode == self.InsertItem:
            item = DiagramItem(self.myItemType, self.myItemMenu)
            item.setBrush(self.myItemColor)
            self.addItem(item)
            item.setPos(mouseEvent.scenePos())
            self.itemInserted.emit(item)
        elif self.myMode == self.InsertLine:
            self.line = QtGui.QGraphicsLineItem(QtCore.QLineF(mouseEvent.scenePos(),
                                        mouseEvent.scenePos()))
            self.line.setPen(QtGui.QPen(self.myLineColor, 2))
            self.addItem(self.line)
        elif self.myMode == self.InsertText:
            textItem = DiagramTextItem()
            textItem.setFont(self.myFont)
            textItem.setTextInteractionFlags(QtCore.Qt.TextEditorInteraction)
            textItem.setZValue(1000.0)
            textItem.lostFocus.connect(self.editorLostFocus)
            textItem.selectedChange.connect(self.itemSelected)
            self.addItem(textItem)
            textItem.setDefaultTextColor(self.myTextColor)
            textItem.setPos(mouseEvent.scenePos())
            self.textInserted.emit(textItem)

        super(DiagramScene, self).mousePressEvent(mouseEvent)
项目:Modular_Rigging_Thesis    作者:LoganKelly    | 项目源码 | 文件源码
def mousePressEvent(self, event):
        item = self.itemAt(event.scenePos())

        if event.button() == QtCore.Qt.LeftButton and (isinstance(item, ConnectRigNode)):
            self.line = QtGui.QGraphicsLineItem(QtCore.QLineF(event.scenePos(), event.scenePos()))
            self.addItem(self.line)


        #if item is None:
        #    cmds.select(clear=True)

        super(SceneView, self).mousePressEvent(event)
项目:picasso    作者:jungmannlab    | 项目源码 | 文件源码
def __init__(self, x, y, size, parent=None):
        super().__init__(parent)
        L = size/2
        line1 = QtGui.QGraphicsLineItem(x-L, y-L, x+L, y+L)
        line1.setPen(QtGui.QPen(QtGui.QColor(0, 255, 0)))
        self.addToGroup(line1)
        line2 = QtGui.QGraphicsLineItem(x-L, y+L, x+L, y-L)
        line2.setPen(QtGui.QPen(QtGui.QColor(0, 255, 0)))
        self.addToGroup(line2)
项目:siren    作者:ozsolarwind    | 项目源码 | 文件源码
def traceGrid(self, station, coords=None):
        self.clear_Trace()
        if self.scene().load_centre is None and coords is None:
            return 0
        self.trace_items = []
        color = QtGui.QColor()
        color.setNamedColor((self.scene().colors['grid_trace']))
        pen = QtGui.QPen(color, self.scene().line_width)
        pen.setJoinStyle(QtCore.Qt.RoundJoin)
        pen.setCapStyle(QtCore.Qt.RoundCap)
        if coords is None:
            for li in range(len(self.scene().lines.lines)):
                if self.scene().lines.lines[li].name == station.name:
                    break
            else:
                return
            nearest = 99999
            j = -1
            dims = self.scene().lines.lines[li].coordinates[0]
            for i in range(len(self.scene().load_centre)):
                thisone = self.scene().lines.actualDistance(self.scene().load_centre[i][1],
                          self.scene().load_centre[i][2], dims[0], dims[1])
                if thisone < nearest:
                    nearest = thisone
                    j = i
            path = Shortest(self.scene().lines.lines, self.scene().lines.lines[li].coordinates[0],
                   [self.scene().load_centre[j][1], self.scene().load_centre[j][2]], self.scene().grid_lines)
            route = path.getPath()
#           check we don't go through another load_centre
            if len(self.scene().load_centre) > 1:
                for co in range(len(route) - 1, 0, -1):
                    for i in range(len(self.scene().load_centre)):
                        if route[co][0] == self.scene().load_centre[i][1] and \
                          route[co][1] == self.scene().load_centre[i][2]:
                            route = route[i:]
                            break
        else:
            route = coords
        grid_path_len = 0.
        st_scn = self.mapFromLonLat(QtCore.QPointF(route[0][1], route[0][0]))
        for i in range(1, len(route)):
            en_scn = self.mapFromLonLat(QtCore.QPointF(route[i][1], route[i][0]))
            grid_path_len += self.scene().lines.actualDistance(route[i - 1][0], route[i - 1][1], route[i][0], route[i][1])
            self.trace_items.append(QtGui.QGraphicsLineItem(QtCore.QLineF(st_scn, en_scn)))
            self.trace_items[-1].setPen(pen)
            self.trace_items[-1].setZValue(3)
            self.scene().addItem(self.trace_items[-1])
            st_scn = en_scn
        return grid_path_len