qt中 chart生成的折线图保存图片只有线没有坐标
想要这样的
【以下回答由 GPT 生成】
在保存图片时保留坐标轴和标签的信息,可以通过将QChartView添加到QWidget中,并使用QPainter来手动绘制坐标轴和标签的方式来实现。具体步骤如下:
以下是修改后的代码示例:
#include <QtCharts/QChart>
#include <QtCharts/QLineSeries>
#include <QChartView>
#include <QPainter>
#include <QWidget>
#include <QPixmap>
...
QChart *chart = new QChart;
QLineSeries *series = new QLineSeries;
series->append(0, 1);
series->append(1, 3);
series->append(2, 2);
series->append(3, 6);
chart->addSeries(series);
// 不再自动生成默认坐标轴和隐藏图例
chart->legend()->hide();
QChartView chartView(chart);
...
// 创建一个新的QWidget,并将QChartView添加到QWidget中
QWidget widget;
QLayout* layout = new QVBoxLayout(&widget);
layout->addWidget(&chartView);
widget.setLayout(layout);
// 绘制坐标轴和标签
QPainter painter(&widget);
widget.render(&painter);
// 保存QWidget为图片
QPixmap pixmap = widget.grab();
pixmap.save("chart_image.jpg");
在上述代码中,我们创建了一个新的QWidget,并通过添加QChartView来显示图表。然后,我们使用QPainter在QWidget上手动绘制坐标轴和标签,然后保存QWidget为图片。这样就能保留坐标轴和标签的信息了。
【相关推荐】