我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用PyQt4.QtGui.QGraphicsLineItem()。
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]
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)
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) #----------------------------------------------------------------------------------------------- #========================================================================================================================
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)
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)
def __init__(self,line): QtGui.QGraphicsLineItem.__init__(self,line)
def paint(self, painter, options, widget): print "Painting" QtGui.QGraphicsLineItem.paint(self, painter,options,widget) #self.setPen(QPen(Qt.red))
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)
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)
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)
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