コード例 #1
0
    def saveGraph(self):
        sizeDlg = OWChooseImageSizeDlg(self.dendrogram, parent=self)
        filename = sizeDlg.getFileName(
            "graph",
            "Portable Network Graphics (*.PNG);;"
            "Windows Bitmap (*.BMP);;"
            "Graphics Interchange Format (*.GIF);;"
            "Scalable Vector Graphics (*.SVG)",
            ".png",
        )

        if not filename:
            return

        _, ext = os.path.splitext(filename)
        ext = ext.lower()

        canvases = (self.headerView.scene(), self.dendrogramView.scene(), self.footerView.scene())
        width = max([c.width() for c in canvases])
        height = sum([c.height() for c in canvases])

        size = QSize(width, height)

        if ext == ".svg":
            device = QSvgGenerator()
            device.setTitle("Dendrogram Plot")
            device.setFileName(filename)
            device.setSize(size)
            device.setViewBox(QRect(QPoint(0, 0), size))
        else:
            device = QPixmap(size)
            device.fill(Qt.white)

        painter = QPainter()
        painter.begin(device)
        painter.setRenderHint(QPainter.Antialiasing)

        self.renderDendrogram(painter)
        painter.end()

        if ext != ".svg":
            device.save(filename)
コード例 #2
0
    def saveGraph(self):
        sizeDlg = OWChooseImageSizeDlg(self.dendrogram, parent=self)
        filename = sizeDlg.getFileName(
            "graph", "Portable Network Graphics (*.PNG);;"
            "Windows Bitmap (*.BMP);;"
            "Graphics Interchange Format (*.GIF);;"
            "Scalable Vector Graphics (*.SVG)", ".png")

        if not filename:
            return

        _, ext = os.path.splitext(filename)
        ext = ext.lower()

        canvases = (self.headerView.scene(), self.dendrogramView.scene(),
                    self.footerView.scene())
        width = max([c.width() for c in canvases])
        height = sum([c.height() for c in canvases])

        size = QSize(width, height)

        if ext == ".svg":
            device = QSvgGenerator()
            device.setTitle("Dendrogram Plot")
            device.setFileName(filename)
            device.setSize(size)
            device.setViewBox(QRect(QPoint(0, 0), size))
        else:
            device = QPixmap(size)
            device.fill(Qt.white)

        painter = QPainter()
        painter.begin(device)
        painter.setRenderHint(QPainter.Antialiasing)

        self.renderDendrogram(painter)
        painter.end()

        if ext != ".svg":
            device.save(filename)