def create_svg(name, width, height): VBOX_WIDTH = 600 VBOX_HEIGHT = 800 # vytvoření instance třídy QSvgGenerator generator = QtSvg.QSvgGenerator() # určení typu výstupu a nastavení # jména výsledného souboru generator.setFileName(name) # specifikace rozměrů SVG obrázku generator.setSize(QtCore.QSize(width, height)) # viditelný výřez generator.setViewBox(QtCore.QRect(0, 0, VBOX_WIDTH, VBOX_HEIGHT)) # nastavení titulku SVG obrázku generator.setTitle("SVG: test 9") # popis SVG obrázku generator.setDescription("seventh SVG example") # inicializace instance třídy QPainter painter = QtGui.QPainter() # začátek kreslení painter.begin(generator) drawScene(painter, VBOX_WIDTH, VBOX_HEIGHT) # konec kreslení painter.end()
def saveImage(self): """ Method for saving the contents of this view to an image file. @ In, None @ Out, None """ dialog = qtg.QFileDialog(self) dialog.setFileMode(qtg.QFileDialog.AnyFile) dialog.setAcceptMode(qtg.QFileDialog.AcceptSave) dialog.exec_() if dialog.result() == qtg.QFileDialog.Accepted: myFile = dialog.selectedFiles()[0] self.scene().clearSelection() if myFile.endswith('.svg'): svgGen = qts.QSvgGenerator() svgGen.setFileName(myFile) svgGen.setSize(self.sceneRect().size().toSize()) svgGen.setViewBox(self.sceneRect()) svgGen.setTitle("Screen capture of " + self.__class__.__name__) svgGen.setDescription("Generated from RAVEN.") painter = qtg.QPainter(svgGen) else: image = qtg.QImage(self.sceneRect().size().toSize(), qtg.QImage.Format_ARGB32) image.fill(qtc.Qt.transparent) painter = qtg.QPainter(image) self.scene().render(painter) if not myFile.endswith('.svg'): image.save(myFile, quality=100) del painter
def saveImage(self): """ Saves the current display of this view to a static image by loading a file dialog box. """ dialog = qtg.QFileDialog(self) dialog.setFileMode(qtg.QFileDialog.AnyFile) dialog.setAcceptMode(qtg.QFileDialog.AcceptSave) dialog.exec_() if dialog.result() == qtg.QFileDialog.Accepted: myFile = dialog.selectedFiles()[0] self.scene.clearSelection() self.scene.setSceneRect(self.scene.itemsBoundingRect()) if myFile.endswith('.svg'): svgGen = qts.QSvgGenerator() svgGen.setFileName(myFile) svgGen.setSize(self.scene.sceneRect().size().toSize()) svgGen.setViewBox(self.scene.sceneRect()) svgGen.setTitle("Screen capture of " + self.__class__.__name__) svgGen.setDescription("Generated from RAVEN.") painter = qtg.QPainter (svgGen) else: image = qtg.QImage(self.scene.sceneRect().size().toSize(), qtg.QImage.Format_ARGB32) image.fill(qtc.Qt.transparent) painter = qtg.QPainter(image) self.scene.render(painter) if not myFile.endswith('.svg'): image.save(myFile,quality=100) del painter
def save_figure(scene, fname): suffix = os.path.splitext(fname)[-1] if suffix == '.svg': img = QtSvg.QSvgGenerator() img.setFileName(fname) invoke_painter(scene, img) else: img = QtGui.QImage(3000, 3000, QtGui.QImage.Format_ARGB32) invoke_painter(scene, img) img.save(fname)
def export_svg(self, path): buf = QtCore.QBuffer() generator = QtSvg.QSvgGenerator() generator.setOutputDevice(buf) generator.setFileName(path) generator.setTitle('Pywr') # TODO: this doesn't work as expected rect = self.scene.itemsBoundingRect() generator.setSize(self.size()) generator.setResolution(300) #generator.setSize(QtCore.QSize(600, 400)) #generator.setViewBox(QtCore.QRect(0, 0, rect.width(), rect.height())) # paint the scene painter = QtGui.QPainter() painter.begin(generator) painter.setRenderHint(QtGui.QPainter.Antialiasing) self.scene.render(painter) painter.end()
def saveImage(self, filename=None): """ Saves the current display of this view to a static image by loading a file dialog box. @ In, filename, string, optional parameter specifying where this image will be saved. If None, then a dialog box will prompt the user for a name and location. @ Out, None """ if filename is None: dialog = qtw.QFileDialog(self) dialog.setFileMode(qtw.QFileDialog.AnyFile) dialog.setAcceptMode(qtw.QFileDialog.AcceptSave) dialog.exec_() if dialog.result() == qtw.QFileDialog.Accepted: filename = dialog.selectedFiles()[0] else: return self.scene.clearSelection() self.scene.setSceneRect(self.scene.itemsBoundingRect()) if filename.endswith('.svg'): svgGen = qts.QSvgGenerator() svgGen.setFileName(filename) svgGen.setSize(self.scene.sceneRect().size().toSize()) svgGen.setViewBox(self.scene.sceneRect()) svgGen.setTitle("Screen capture of " + self.__class__.__name__) svgGen.setDescription("Generated from RAVEN.") painter = qtg.QPainter(svgGen) else: image = qtg.QImage(self.scene.sceneRect().size().toSize(), qtg.QImage.Format_ARGB32) image.fill(qtc.Qt.transparent) painter = qtg.QPainter(image) self.scene.render(painter) if not filename.endswith('.svg'): image.save(filename, quality=100) del painter
#!/usr/bin/env python # vim: set fileencoding=utf-8 from PySide import QtGui, QtSvg # vytvoření instance třídy QSvgGenerator generator = QtSvg.QSvgGenerator() # určení typu výstupu a nastavení # jména výsledného souboru generator.setFileName("test2.svg") # inicializace instance třídy QPainter painter = QtGui.QPainter() # začátek kreslení painter.begin(generator) # ihned poté ukončíme kreslení painter.end()