简体   繁体   English

将图表另存为 PyQt5 中的图像

[英]Save diagram as image in PyQt5

I'm trying to save my diagram on a PyQt5 widget as a picture (.png or.jpg) but not finding ways to do that.我正在尝试将我的图表保存在 PyQt5 小部件上作为图片(.png 或 .jpg),但没有找到方法。 Code for creating diagram:创建图表的代码:

self.clearLayout(self.diagram_up)
    self.series_ = QPieSeries()
    self.series_.setHoleSize(0.35)
    self.slice_ = QPieSlice()
    self.slice_.setExploded()
    self.slice_.setLabelVisible()
    for slice in self.series_.slices():
        slice.setLabel("<h3>{:.2f}%</h3>".format(100 * slice.percentage()))
    self.chart_ = QChart()
    self.chart_.legend().hide()
    self.chart_.addSeries(self.series_)
    self.chart_.setAnimationOptions(QChart.SeriesAnimations)
    self.chart_.setTitle("<span style='color: black; font-size: 18pt;'>Статистика по операциям</span>")
    self.chartview_ = QChartView(self.chart_)
    self.chartview_.setRenderHint(QPainter.Antialiasing)
    self.diagram_up.addWidget(self.chartview_)

QChartView is a QGraphicsView so you can use the render method. QChartView 是一个 QGraphicsView 所以你可以使用 render 方法。

pixmap = QPixmap(self.chartview_.sceneRect().size().toSize())
pixmap.fill(QColor("transparent"))

painter = QPainter(pixmap)
painter.setRenderHint(QPainter.Antialiasing)

self.chartview_.render(painter)
painter.end()

pixmap.save("image.png")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM