def __init__(self, scene, x, y, w, h): self.w = w self.h = h super(LabelItem, self).__init__(scene, x, y) self.message = None self.temp_msgs = [] rospack = rospkg.RosPack() self.icons_path = rospack.get_path('art_projected_gui') + '/icons/' self.icons = {} self.icons[NotifyUserRequest.INFO] = QtSvg.QGraphicsSvgItem( self.icons_path + 'Antu_dialog-information.svg', self) self.icons[NotifyUserRequest.WARN] = QtSvg.QGraphicsSvgItem( self.icons_path + 'Antu_dialog-warning.svg', self) self.icons[NotifyUserRequest.ERROR] = QtSvg.QGraphicsSvgItem( self.icons_path + 'Antu_emblem-important.svg', self) self.icons[NotifyUserRequest.YES_NO_QUESTION] = QtSvg.QGraphicsSvgItem( self.icons_path + 'Antu_dialog-question.svg', self) s = self.m2pix(self.h) for k, v in self.icons.iteritems(): v.setScale(s / v.boundingRect().height()) v.setPos(0, 0) v.setVisible(False) self.timer = rospy.Timer(rospy.Duration(0.5), self.timer_cb) self.setCacheMode(QtGui.QGraphicsItem.ItemCoordinateCache) self.setZValue(200)
def show_tree(t, layout=None, tree_style=None): """ Interactively shows a tree.""" scene, img = init_scene(t, layout, tree_style) tree_item, n2i, n2f = render(t, img) scene.init_data(t, img, n2i, n2f) tree_item.setParentItem(scene.master_item) scene.addItem(scene.master_item) size = tree_item.rect() w, h = size.width(), size.height() svg = QtSvg.QSvgGenerator() svg.setFileName("test.svg") svg.setSize(QtCore.QSize(w, h)) svg.setViewBox(size) pp = QtGui.QPainter() pp.begin(svg) #pp.setRenderHint(QtGui.QPainter.Antialiasing) #pp.setRenderHint(QtGui.QPainter.TextAntialiasing) #pp.setRenderHint(QtGui.QPainter.SmoothPixmapTransform) scene.render(pp, tree_item.rect(), tree_item.rect(), QtCore.Qt.KeepAspectRatio) pp.end() img = QtSvg.QGraphicsSvgItem("test.svg") #img.setParentItem(scene.master_item) #scene.removeItem(tree_item) #tree_item.setVisible(False) mainapp = _GUI(scene) mainapp.show() _QApp.exec_()
def __init__(self, parent=None): super(ValveButton, self).__init__(parent) self.setCheckable(True) self.setAttribute(Qt.WA_NoSystemBackground) self._rendererOn = QtSvg.QSvgRenderer(self) self._rendererOff = QtSvg.QSvgRenderer(self) self._rendererOn.load(":/img/valve_green.svg") self._rendererOff.load(":/img/valve_red.svg")
def infr_flag(self, time, rule): # To align the flag's pointer correctly, subtract 25 from the # desired minute xform = QtGui.QTransform() if rule == "hgv": flag = QtSvg.QGraphicsSvgItem('./icons/drive_infr.svg') flag.setTransform(xform.translate((time - 25), -20)) else: flag = QtSvg.QGraphicsSvgItem('./icons/wtd_infr.svg') flag.setTransform(xform.translate((time - 25), 45)) self.addItem(flag) self.flag_list.append(flag)
def on_applyButton_clicked(self): """ Apply settings for a node """ current = self.treeWidgetSymbols.currentItem() if current: name = current.text(0) normal_renderer = QtSvg.QSvgRenderer(':/symbols/' + name + '.normal.svg') select_renderer = QtSvg.QSvgRenderer(':/symbols/' + name + '.selected.svg') for item in self.items: item.setRenderers(normal_renderer, select_renderer) item.default_symbol = False item.type = name
def initItems(self): darkGray = QtGui.QColor(64, 64, 64) boundingRect = QRectF(0, 0, 10, 10) self.graphicsView.setBackgroundBrush(QtGui.QBrush(Qt.darkGray)) scene = self.graphicsView.scene() scene.clearSelection( ) #scene.clear()!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! self.svgItem = QtSvg.QGraphicsSvgItem() self.svgItem.setFlags(QtGui.QGraphicsItem.ItemClipsToShape) # self.svgItem.setCacheMode(QtGui.QGraphicsItem.NoCache) self.svgItem.setZValue(0) self.shadowItem = QtGui.QGraphicsRectItem( boundingRect.adjusted(-1, -1, 2, 2)) self.shadowItem.setBrush(QtGui.QBrush(darkGray)) self.shadowItem.setPen(QtGui.QPen(darkGray)) self.shadowItem.setZValue(-2) self.shadowItem.setPos(4, 4) self.frameItem = QtGui.QGraphicsRectItem( boundingRect.adjusted(-1, -1, 2, 2)) self.frameItem.setBrush(QtGui.QBrush(Qt.white)) self.frameItem.setPen(QtGui.QPen(darkGray)) self.frameItem.setZValue(-1) self.frameItem.setPos(-1, -1) scene.addItem(self.shadowItem) scene.addItem(self.frameItem) scene.addItem(self.svgItem) scene.setSceneRect(boundingRect.adjusted(-3, -3, 10, 10))
def __init__(self, procesador): route = self.route = Routes.Transsiberian(procesador.configuracion) titulo = "%s (%d)" % (_("Transsiberian Railway"), route.level) icono = Iconos.Train() extparam = "transsiberian" QTVarios.WDialogo.__init__(self, procesador.pantalla, titulo, icono, extparam) self.procesador = procesador wsvg = QtSvg.QSvgWidget() x = self.route.get_txt().encode("utf-8") wsvg.load(QtCore.QByteArray(x)) wsvg.setFixedSize(762, 762.0 * 658.0 / 1148.0) lySVG = Colocacion.H().relleno(1).control(wsvg).relleno(1) # Title lbTit = self.LINE(_("Moscow"), _("Vladivostok"), 14, 500).altoFijo(26) lbKM = self.KM(route.total_km, 12, 500).altoFijo(26) self.set_style("White", "#33322C", lbTit, lbKM) lbKMdone = self.KM(route.km, 12, 500).altoFijo(26) self.set_border(lbKMdone) lyTitle = Colocacion.H().control(lbTit).control(lbKM).control(lbKMdone) if route.is_ended(): self.init_ended(route, lyTitle, lySVG) else: self.init_working(route, lyTitle, lySVG) self.recuperarVideo(siTam=False)
def SaveFile(self): dlg = QtGui.QFileDialog.getSaveFileName filename = dlg(self, "Save", '', "svg file ( *.svg ) ;; image file ( *.png )") if filename: filename = unicode(filename) if filename.endswith('.svg'): fh = open(filename, 'wb') self.svg.write(fh) fh.close() else: fh = io.BytesIO() self.svg.write(fh) content = QtCore.QByteArray(fh.getvalue()) image = QtGui.QImage(self.width, self.height, QtGui.QImage.Format_ARGB32_Premultiplied) painter = QtGui.QPainter(image) painter.setViewport(0, 0, self.width, self.height) painter.eraseRect(0, 0, self.width, self.height) render = QtSvg.QSvgRenderer(content) render.render(painter) painter.end() image.save(filename)
def reset(self): self.posicion2xy() bm = self.bloqueDatos self.pixmap = QtSvg.QSvgRenderer(QtCore.QByteArray(bm.xml)) self.setOpacity(bm.opacidad) self.setZValue(bm.posicion.orden) self.update()
def __init__(self, rads=0, parent=None): QtGui.QWidget.__init__(self, parent) self.checkerboard = array([[0, 255, 255, 255], [255, 0, 255, 255], [0, 255, 0, 255], [255, 0, 255, 0], [0, 255, 0, 255], [255, 0, 255, 255], [0, 255, 255, 255]]) im = Image.fromarray(self.checkerboard) im.save('arrow.png') self.scene = QtGui.QGraphicsScene() self.head = QtSvg.QGraphicsSvgItem("checkered_arrow_3_op.svg") trans = QtGui.QTransform() trans.translate(-self.head.boundingRect().width() / 2, -self.head.boundingRect().height() / 2) self.head.setTransform(trans) self.type = 0 self.size = 170 self.color = None self.frequency = 10 self.rads = rads self.timer = QtCore.QTimer() self.pixmap = None self.pixmap_black = None self.pixmap_green = None self.point = QPointF(0.0, 0.0) QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.changeColor)
def __init__(self, parent=None): super(SourceWidget, self).__init__(parent) self.mimeData = None imageFile = QtCore.QFile(':/images/example.svg') imageFile.open(QtCore.QIODevice.ReadOnly) self.imageData = imageFile.readAll() imageFile.close() imageArea = QtGui.QScrollArea() self.imageLabel = QtSvg.QSvgWidget() self.imageLabel.renderer().load(self.imageData) imageArea.setWidget(self.imageLabel) instructTopLabel = QtGui.QLabel("This is an SVG drawing:") instructBottomLabel = QtGui.QLabel("Drag the icon to copy the drawing as a PNG file:") dragIcon = QtGui.QPushButton("Export") dragIcon.setIcon(QtGui.QIcon(':/images/drag.png')) dragIcon.pressed.connect(self.startDrag) layout = QtGui.QGridLayout() layout.addWidget(instructTopLabel, 0, 0, 1, 2) layout.addWidget(imageArea, 1, 0, 2, 2) layout.addWidget(instructBottomLabel, 3, 0) layout.addWidget(dragIcon, 3, 1) self.setLayout(layout) self.setWindowTitle("Delayed Encoding")
def __init__(self, wowner, configuracion, recno): expedition = Everest.Expedition(configuracion, recno) self.li_routes, self.current, svg, rotulo = expedition.gen_routes() titulo = _("Everest") icono = Iconos.Trekking() extparam = "expedition" QTVarios.WDialogo.__init__(self, wowner, titulo, icono, extparam) self.selected = False wsvg = QtSvg.QSvgWidget() wsvg.load(QtCore.QByteArray(svg)) wsvg.setFixedSize(762, 762.0 * 520.0 / 1172.0) lySVG = Colocacion.H().relleno(1).control(wsvg).relleno(1) liAcciones = ( (_("Climb"), Iconos.Empezar(), self.climb), None, (_("Close"), Iconos.MainMenu(), self.cancel), None, ) tb = Controles.TBrutina(self, liAcciones).vertical() if self.current is None: tb.setAccionVisible(self.climb, False) lyRot = Colocacion.H() for elem in rotulo: lb_rotulo = Controles.LB(self, elem).alinCentrado() lb_rotulo.setStyleSheet( "QWidget { border-style: groove; border-width: 2px; border-color: LightSlateGray ;}" ) lb_rotulo.ponTipoLetra(puntos=12, peso=700) lyRot.control(lb_rotulo) oColumnas = Columnas.ListaColumnas() oColumnas.nueva("ROUTE", _("Route"), 240, siCentrado=True) oColumnas.nueva("GAMES", _("Games"), 80, siCentrado=True) oColumnas.nueva("DONE", _("Done"), 80, siCentrado=True) oColumnas.nueva("TIME", _("Time"), 80, siCentrado=True) oColumnas.nueva("MTIME", _("Average time"), 80, siCentrado=True) oColumnas.nueva("MPOINTS", _("Av. lost points"), 80, siCentrado=True) oColumnas.nueva("TRIES", _("Max tries"), 80, siCentrado=True) oColumnas.nueva("TOLERANCE", _("Tolerance"), 80, siCentrado=True) grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=False) grid.setMinimumWidth(grid.anchoColumnas() + 20) grid.coloresAlternados() lyG = Colocacion.V().otro(lyRot).control(grid) lyR = Colocacion.H().control(tb).otro(lyG) ly = Colocacion.V().otro(lySVG).otro(lyR) self.setLayout(ly) self.recuperarVideo(siTam=True, anchoDefecto=784, altoDefecto=670)
def __init__(self, scene, x, y, w, h, fn, fixed=False): self.img = None self.w = 0 self.h = 0 super(IconItem, self).__init__(scene, x, y) self.icon = QtSvg.QGraphicsSvgItem(fn, self) self.setCacheMode(QtGui.QGraphicsItem.ItemCoordinateCache) self.setZValue(100) self.fixed = fixed self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True) self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable, True) self.w = self.m2pix(w) self.h = self.m2pix(h) self.icon.setScale( min( self.boundingRect().height() / self.icon.boundingRect().height(), self.boundingRect().width() / self.icon.boundingRect().width()))
def __init__(self, parent=None): super(self.__class__, self).__init__(parent) self.setupUi(self) self.graphicsViewBoard = myqgraph.ItaloGraphicsView(self.centralwidget) self.add_board_to_ui() self.start_in = None self.finish_in = None self.engine = chess.uci.popen_engine("models/stockfish-8-linux/Linux/stockfish_8_x64") self.engine.uci() self.board = chess.Board() self.board_svg = chess.svg.board(self.board) self.scene = QGraphicsScene(self.graphicsViewBoard) self.graphicsViewBoard.setScene(self.scene) self.item = QtSvg.QGraphicsSvgItem('tmp.svg') self.btn_connections() self.command = None self.btn_computer_move.setVisible(False) self.do_iniciar()
def svg2jpg(svgString): svgMatch = re.match( '.*viewBox.*viewBox=\"[ \t]*([0-9]+\.?[0-9]*)[ \t]+([0-9]+\.?[0-9]*)[ \t]+([0-9]+\.?[0-9]*)[ \t]+([0-9]+\.?[0-9]*)[ \t]*\".*$', svgString, re.DOTALL) if svgMatch: svgWidth = float(svgMatch.group(3)) svgHeight = float(svgMatch.group(4)) else: print 'makeSvgs: no match for width/height.' exit() #svgWidth = 200 #svgHeight = 166 #svgWidth = 100 #svgHeight = 83 #rect = QtCore.QRect(0,0,svgWidth,svgHeight) svgSize = QtCore.QSize(svgWidth, svgHeight) myXmlStreamReader = QtCore.QXmlStreamReader(svgString) myRenderer = QtSvg.QSvgRenderer(myXmlStreamReader) myImage = QtGui.QImage(svgSize, QtGui.QImage.Format_ARGB32) myTempPainter = QtGui.QPainter(myImage) myTempPainter.fillRect(myImage.rect(), QtCore.Qt.white) myRenderer.render(myTempPainter) myTempPainter.end() buf = QtCore.QBuffer() buf.open(QtCore.QIODevice.ReadWrite) myImage.save(buf, "JPG") buf.seek(0) jpg = buf.readAll() return jpg
def svgdraw(self): # instance scene = QtGui.QGraphicsScene() self.ui.graphicsView.setScene(scene) br = QtSvg.QGraphicsSvgItem("/Users/Regina/Desktop/tmp1.svg") # text = QtSvg.QGraphicsSvgItem("/Users/Regina/Documents/Pázmány/Onallo_labor/Project/Python/What'sWrong_SVG/szoveg.svg") scene.addItem(br) self.ui.graphicsView.show()
def openFileIMG(self, img_file): s = self.scene() if self.backgroundItem: drawBackground = self.backgroundItem.isVisible() else: drawBackground = True if self.outlineItem: drawOutline = self.outlineItem.isVisible() else: drawOutline = True if self.TraceImage: drawOutline = self.outlineItem.isVisible() else: drawOutline = True s.clear() img = QtGui.QPixmap(img_file) self.TraceImage = QtGui.QGraphicsPixmapItem(img) self.TraceImage.setFlags(QtGui.QGraphicsItem.ItemClipsToShape) self.TraceImage.setCacheMode(QtGui.QGraphicsItem.NoCache) self.TraceImage.setZValue(1) effect = QtGui.QGraphicsOpacityEffect(self) self.TraceImage.setGraphicsEffect(effect) self.setOpacity(self.opacity) self.TraceImage.setZValue(1) self.svgItem = QtSvg.QGraphicsSvgItem() self.svgItem.setFlags(QtGui.QGraphicsItem.ItemClipsToShape) self.svgItem.setCacheMode(QtGui.QGraphicsItem.NoCache) self.svgItem.setZValue(0) self.backgroundItem = QtGui.QGraphicsRectItem( self.TraceImage.boundingRect()) self.backgroundItem.setBrush(QtCore.Qt.white) self.backgroundItem.setPen(QtGui.QPen(QtCore.Qt.NoPen)) self.backgroundItem.setVisible(drawBackground) self.backgroundItem.setZValue(-1) self.outlineItem = QtGui.QGraphicsRectItem( self.TraceImage.boundingRect()) outline = QtGui.QPen(QtCore.Qt.darkGray, 1.5, QtCore.Qt.SolidLine) outline.setCosmetic(True) self.outlineItem.setPen(outline) self.outlineItem.setBrush(QtGui.QBrush(QtCore.Qt.NoBrush)) self.outlineItem.setVisible(drawOutline) self.outlineItem.setZValue(2) s.addItem(self.backgroundItem) s.addItem(self.svgItem) s.addItem(self.TraceImage) s.addItem(self.outlineItem) s.setSceneRect(self.outlineItem.boundingRect().adjusted( -10, -10, 10, 10))
def __init__(self, parent): QtGui.QGraphicsView.__init__(self, parent) self.renderer = QtSvg.QSvgRenderer('electrodes.svg') # self.pixmap = QtGui.QPixmap(900,900) # self.pixmap.fill(QtCore.Qt.transparent) self.scene = QtGui.QGraphicsScene() self.setScene(self.scene)
def intrinsicSize(self, doc, posInDocument, format): renderer = QtSvg.QSvgRenderer(format.property(Window.SvgData)) size = renderer.defaultSize() if size.height() > 25: size *= 25.0 / size.height() return QtCore.QSizeF(size)
def plotTree(self, tree, out_fn=None, rotation=270, show_leaf_name=False, show_branch_length=False, circularTree=False, show_division_nodes=True, distance_between_branches=4, show_border=False, width=None, height=None): from ete2 import TreeStyle from PyQt4 import QtSvg, QtCore, QtGui from ete2.treeview import qt4_render, drawer, main ts = TreeStyle() ts.show_scale = False ts.show_border = show_border ts.orientation = 1 # 0, tree is drawn from left-to-right. 1, tree is drawn from right-to-left ts.rotation = rotation ts.show_leaf_name = show_leaf_name ts.show_branch_length = show_branch_length if circularTree: ts.mode = 'c' else: ts.mode = 'r' ts.branch_vertical_margin = distance_between_branches def hideInternalNodesLayout(node): if not node.is_leaf(): node.img_style["size"] = 0 if show_division_nodes is False: ts.layout_fn = hideInternalNodesLayout if out_fn is not None: scene = qt4_render._TreeScene() img = ts tree_item, n2i, n2f = qt4_render.render(tree, img) scene.init_data(tree, img, n2i, n2f) tree_item.setParentItem(scene.master_item) scene.master_item.setPos(0,0) scene.addItem(scene.master_item) main.save(scene, out_fn, w=width, h=height, dpi=600) else: scene, img = drawer.init_scene(tree, None, ts) tree_item, n2i, n2f = qt4_render.render(tree, img) scene.init_data(tree, img, n2i, n2f) tree_item.setParentItem(scene.master_item) scene.addItem(scene.master_item) size = tree_item.rect() w, h = size.width(), size.height() svg = QtSvg.QSvgGenerator() svg.setFileName("test.svg") svg.setSize(QtCore.QSize(w, h)) svg.setViewBox(size) pp = QtGui.QPainter() pp.begin(svg) scene.render(pp, tree_item.rect(), tree_item.rect(), QtCore.Qt.KeepAspectRatio)
def print_(self, docName, printer): size = self.getPageRectSizeF() if size: printer.setPaperSize(size, 0) # if size: # if printer.outputFileName(): # printer.setPaperSize(size,0) # else: # w = size.width() # h = size.height() # if w < h: # size.transpose() # printer.setOrientation(QtGui.QPrinter.Landscape) # else: # printer.setOrientation(QtGui.QPrinter.Portrait) # printer.setPaperSize(size,0) # else: # printer.setPaperSize(QtGui.QPrinter.A4) # printer.setOrientation(QtGui.QPrinter.Portrait) printer.setFullPage(True) printer.setPageMargins(0, 0, 0, 0, 0) printer.setCreator('vista-med') printer.setDocName(docName) printer.setFontEmbeddingEnabled(True) painter = QtGui.QPainter() renderer = QtSvg.QSvgRenderer() painter.begin(printer) # if printer.orientation() == QtGui.QPrinter.Landscape: # painterRect = painter.viewport() # painter.translate(0, painterRect.height()) # painter.rotate(270) pageIdList = self.findPages() if pageIdList: fromPage = printer.fromPage() toPage = printer.fromPage() if fromPage and toPage: pageIdList = pageIdList[fromPage - 1:toPage] if printer.pageOrder == QtGui.QPrinter.LastPageFirst: pageIdList.reverse() firstPage = True for pageId in pageIdList: self.hideAllPagesExceptOne(pageId) renderer.load(self.toByteArray(0)) if not firstPage: printer.newPage() renderer.render(painter) firstPage = False else: renderer.load(self.toByteArray()) renderer.render(painter) # del renderer painter.end()
def writeSvg(self, fileName=None): if fileName is None: fileName = str(QtGui.QFileDialog.getSaveFileName()) self.svg = QtSvg.QSvgGenerator() self.svg.setFileName(fileName) self.svg.setSize(self.size()) self.svg.setResolution(600) painter = QtGui.QPainter(self.svg) self.render(painter)
def svg2pm(svg, tam): pm = QtGui.QPixmap(tam, tam) pm.fill(QtCore.Qt.transparent) qb = QtCore.QByteArray(svg) render = QtSvg.QSvgRenderer(qb) painter = QtGui.QPainter() painter.begin(pm) render.render(painter) painter.end() return pm
def __init__(self, view, data): QtSvg.QGraphicsSvgItem.__init__(self) # The renderer must be preserved for the lifetime of the image self.renderer = QtSvg.QSvgRenderer(QtCore.QByteArray(data)) #print "IH", self.renderer.defaultSize().height() self.setSharedRenderer(self.renderer) view.gScene.addItem(self) self.uscale = 1.0
def draw_svg(self, painter): if not self.is_rightside: painter.scale(-1, 1) offset = 2 * self.rect.topLeft().x() + self.rect.width() painter.translate(-offset, 0) if self.svg: QtSvg.QSvgRenderer(self.svg).render(painter, self.rect_f) else: painter.setOpacity(self.opacity) self.svg_renderer.render(painter, self.rect_f)
def drawShape(self, painter, rect): """Draw image.""" s = self.settings logging.debug('drawShape') # draw border and fill painter.drawRect(rect) # check to see whether image needs reloading image = None if s.embeddedDataset != s.dataset or s.embeddedTarget != s.target: self.actionEmbed() image = self.cacheimage # or needs recreating from embedded data elif s.embeddedImageData != '': if s.embeddedImageData is not self.cacheembeddata: self.updateCachedEmbedded() self.updateCachedImage() image = self.cacheimage # if no image, then use default image if (not image or image.isNull() or image.width() == 0 or image.height() == 0): # empty image r = QtSvg.QSvgRenderer() r.render(painter, rect) else: # image rectangle irect = QtCore.QRectF(image.rect()) # preserve aspect ratio if s.aspect: xr = rect.width() / irect.width() yr = rect.height() / irect.height() if xr > yr: rect = QtCore.QRectF( rect.left() + (rect.width() - irect.width() * yr) * 0.5, rect.top(), irect.width() * yr, rect.height()) else: rect = QtCore.QRectF( rect.left(), rect.top() + (rect.height() - irect.height() * xr) * 0.5, rect.width(), irect.height() * xr) # finally draw image rect.setWidth(rect.width() - 1) rect.setLeft(rect.left() + 1) painter.drawImage(rect, image, irect)
def intrinsicSize(self, doc, posInDocument, format): renderer = QtSvg.QSvgRenderer(format.property(self.SvgData)) view_box = renderer.viewBox() size = QtCore.QSize(view_box.width(), view_box.height()) side = max(doc.pageSize().height(), doc.pageSize().width()) ratio = side / max(size.width(), size.height()) size *= ratio / (3 + 1e-9) return QtCore.QSizeF(size)
def __init__(self, parent=None): """ SVGCellWidget(parent: QWidget) -> SVGCellWidget Create a SVGCellWidget without any toolbar """ QCellWidget.__init__(self, parent) self.setLayout(QtGui.QVBoxLayout(self)) self.svgWidget = QtSvg.QSvgWidget() self.layout().addWidget(self.svgWidget) self.controlBarType = None self.fileSrc = None
def save_svg(self, fname): '''Write the QCA circuit to an svg file''' generator = QtSvg.QSvgGenerator() generator.setFileName(fname) generator.setSize(self.canvas.size()) generator.setViewBox(self.canvas.rect()) painter = QtGui.QPainter() painter.begin(generator) self.canvas.paint(painter) painter.end()
def __init__(self, robot, rend): self.pos = 15, 15 self.ang = 0 self.scale = 1 self.cx, self.cy = 15, 15 GraphicsItem.__init__(self) self.item = QtSvg.QGraphicsSvgItem(robot.item) self.item.setSharedRenderer(rend) self.item.setElementId('turret') self.set_transform()