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)
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)