学习好难真的好难 2023-10-25 14:19 采纳率: 0%
浏览 51

QT 使用qchart保存图片

qt中 chart生成的折线图保存图片只有线没有坐标

img


想要这样的

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-25 16:08
    关注

    【以下回答由 GPT 生成】

    在保存图片时保留坐标轴和标签的信息,可以通过将QChartView添加到QWidget中,并使用QPainter来手动绘制坐标轴和标签的方式来实现。具体步骤如下:

    1. 创建一个新的QWidget,并将QChartView添加到QWidget中,以便在QWidget中显示图表和坐标轴。
    2. 使用QPainter在QWidget上手动绘制坐标轴和标签。可以使用QChart的axisX和axisY方法来获取坐标轴对象,然后根据坐标轴的范围和位置信息来计算坐标轴的绘制位置。
    3. 将绘制完成的QWidget保存为图片。

    以下是修改后的代码示例:

    #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为图片。这样就能保留坐标轴和标签的信息了。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月25日

悬赏问题

  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?