def __init__(self, lon0, lat0, lon1, lat1, svg_filename, parent=None): """Constructor. Args: longitude(float): Longitude of the upper left corner latitude(float): Latitude of the upper left corner longitude(float): Longitude of the lower right corner latitude(float): Latitude of the lower right corner svg_filename: Svg file name scene(MapGraphicsScene): Scene the item belongs to. parent(QGraphicsItem): Parent item. This will display an svg file with the corners geo-registered """ QGraphicsSvgItem.__init__(self, svg_filename, parent=parent) MapItem.__init__(self) self._lon0 = lon0 self._lat0 = lat0 self._lon1 = lon1 self._lat1 = lat1 self._xsize = 0 self._ysize = 0 self.x_mult = 1 self.y_mult = 1 self._renderer = QSvgRenderer(svg_filename) self._border = QGraphicsRectItem(parent=self) self._border.setPen(Qt.black)
def addRect(self, text, color, border=None, size=20.0): shape = QGraphicsRectItem(size / 2.0, size / 2.0, size, size) brush = makeBrush(color) shape.setBrush(brush) shape.setPen(makePen(border)) self.addEntry(MapLegendEntryItem(shape, text))
def __init__(self, anchor, parent=None): QGraphicsObject.__init__(self, parent=parent) MapItem.__init__(self) self.setZValue(200.0) anchorPos = self._posForAnchors[anchor] self._anchorPos = QPointF(anchorPos) self._anchor = anchor self._border = QGraphicsRectItem(parent=self) self._border.setPen(QPen(Qt.NoPen)) self._border.setBrush(QBrush(QColor(190, 190, 190, 160))) self._entries = list() imgfile = os.path.dirname(__file__) + os.sep + 'zoom_in_symbol.png' img = QPixmap(24, 24) img.load(imgfile) img = img.scaled(24, 24) img = ImageButton(img, parent=self) self.zoom_in_button = img self.addEntry(self.zoom_in_button) imgfile = os.path.dirname(__file__) + os.sep + 'zoom_out_symbol.png' img2 = QPixmap(24, 24) img2.load(imgfile) img2 = img2.scaled(24, 24) img2 = ImageButton(img2, parent=self) self.zoom_out_button = img2 self.addEntry(self.zoom_out_button)
def __init__(self, other_item, text, parent=None, min_zoom_visibility=None): QGraphicsSimpleTextItem.__init__(self, text, parent=parent) MapItem.__init__(self) self.other_item = other_item self._min_zoom = min_zoom_visibility self._border = QGraphicsRectItem(parent=self) self._border.setPen(QPen(Qt.NoPen)) self._border.setBrush(QBrush(QColor(190, 190, 190, 160)))
def __init__(self, longitude, latitude, text, parent=None, min_zoom_visibility=None): QGraphicsSimpleTextItem.__init__(self, text, parent=parent) MapItem.__init__(self) self._min_zoom = min_zoom_visibility self._lon, self._lat = longitude, latitude self._border = QGraphicsRectItem(parent=self) self._border.setPen(QPen(Qt.NoPen)) self._border.setBrush(QBrush(QColor(190, 190, 190, 160)))
def __init__(self, pos=None, parent=None): QGraphicsObject.__init__(self, parent=parent) MapItem.__init__(self) self.setZValue(200.0) self._anchorPos = QPointF(pos) if pos is not None else QPointF( 10.0, 10.0) self._border = QGraphicsRectItem(parent=self) self._border.setPen(QPen(Qt.NoPen)) self._border.setBrush(QBrush(QColor(190, 190, 190, 160))) self._entries = list() self._entriesGroup = QGraphicsItemGroup(parent=self)
def mouseMoveEvent(self, evt): '''Catch right-click events for rectangle drawing''' if self.rubberband_enabled and self.rect_start: pos = evt.scenePos() #lon,lat = self.lonLatFromPos(pos.x(), pos.y()) self.rect_end = pos if not self.rubberband: self.rubberband = QGraphicsRectItem( min(self.rect_start.x(), self.rect_end.x()), min(self.rect_start.y(), self.rect_end.y()), abs(self.rect_end.x() - self.rect_start.x()), abs(self.rect_end.y() - self.rect_start.y())) clr = QColor(240, 240, 240, 100) self.rubberband.setBrush(clr) self.rubberband.setPen(QPen(QBrush(Qt.blue), 1.0)) self.addItem(self.rubberband) else: self.rubberband.setRect( min(self.rect_start.x(), self.rect_end.x()), min(self.rect_start.y(), self.rect_end.y()), abs(self.rect_end.x() - self.rect_start.x()), abs(self.rect_end.y() - self.rect_start.y()))
def __init__(self, block, debug=False): self._block = block self._debug = debug self.modified_callback = None self._base_zvalue = None self._top_zvalue = 1 self._vpad = 5 self._footer_height = self._vpad self._editing = False self._start_move_connector_row = None self.highlight_background_color = QColor(127, 255, 127, 255) # RGBA super().__init__(0, 0, block.width, block.height) self.setBrush(QBrush(Qt.gray)) self.setFlag(self.ItemIsMovable) self.setFlag(self.ItemIsFocusable) self.setFlag(self.ItemSendsGeometryChanges) t = self._title = Block_Title(self._block.name) t.setParentItem(self) t.setPos(0, self._vpad) text_height = t.boundingRect().height() self._row_height = text_height self._insert_receptor_height = text_height / 2.0 self._header_height = text_height + 2 * self._vpad self._grid_size = self._row_height / 2.0 tr = self._title_rect = QGraphicsRectItem( 0, 0, 10, self._header_height) # width set later tr.setParentItem(self) self._title.setParentItem(tr) cl = self._connector_layer = QGraphicsRectItem(self.rect()) cl.setParentItem(self) cl.setBrush(QBrush(Qt.NoBrush)) #cl.setBrush(QBrush(Qt.blue)) cl.setPen(QPen(Qt.NoPen)) self._connectors = [] for i, c in enumerate(block.connectors): self.add_connector(c, quick=True) rl = self._receptor_layer = QGraphicsRectItem(self.rect()) rl.setParentItem(self) rl.setBrush(QBrush(Qt.NoBrush)) #rl.setBrush(QBrush(Qt.blue)) rl.setPen(QPen(Qt.NoPen)) self._receptors = receptor.Grid( parent_item=self._receptor_layer, n_cols=3, cell_height=self._row_height, top_border=self._header_height, bottom_border=self._footer_height, sensitive=False, debug_color=Qt.cyan, debug=self._debug, ) irl = self._insert_receptor_layer = QGraphicsRectItem(self.rect()) irl.setParentItem(self) irl.setBrush(QBrush(Qt.NoBrush)) #irl.setBrush(QBrush(Qt.blue)) irl.setPen(QPen(Qt.NoPen)) self._insert_receptors = receptor.Grid( parent_item=self._insert_receptor_layer, n_cols=3, cell_height=self._insert_receptor_height, row_spacing=self._row_height - self._insert_receptor_height, top_border=self._header_height - self._insert_receptor_height / 2.0, stretch_last_row=True, sensitive=False, debug_color=Qt.yellow, debug=self._debug, ) self._resizer = resizer.Frame(self, debug=self._debug) self._header_avoid_shape = None self._row_avoid_shapes = [] self._row_divider_avoid_shapes = [] self._footer_avoid_shape = None self._avoid_shape = None self._ensure_minimum_size() self._set_default_appearance() self.set_editing_mode(self._editing)