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()
Esempio n. 2
0
 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
Esempio n. 3
0
 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
Esempio n. 4
0
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)
Esempio n. 5
0
    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()
Esempio n. 6
0
    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
Esempio n. 7
0
#!/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()