QtChart 保存到图像文件

Qt 5.7 中引入了 QtChart 模块。利用 QtChart 模块可以很容易的在程序中画出各种漂亮的图表. 这些漂亮的图表除了在界面上显示之外, 还经常需要保存为图片,以便后续使用. 这篇博客就来讲讲如何将 Chart 保存到图片中.

其实这是个小问题, 只需要两三行代码. 但是 QChartView 这个类没有提供这么个函数. 所以要实现这么个小功能还真要考验大家对 Qt 的掌握水平了.

我才用的方法是使用 QScreen 的:

QPixmap QScreen::grabWindow(WId window, int x = 0, int y = 0, int width = -1, int height = -1)

这个方法. 用这个方法,只要有 WId ,那么什么窗口的图像都可以获取.
QChartView 继承自 QWidget, 用 winId() 函数就可以获得 WId.

下面是个最简单的代码片段, 描述了如何将一个QChartView 的图像保存到 chart.png 文件中:

    QScreen * screen = QGuiApplication::primaryScreen();
    QPixmap p = screen->grabWindow(view->winId());
    QImage image = p.toImage();
    image.save("chart.png");

下面是我用这个方法获得的一个图像. 在获得这个图片之前,我故意将这个chart view 窗口挪出了屏幕. 经测试,这样也并不影响我获得正确的图片.
这里写图片描述
按照我这个思路, 只要是继承自 QWidget 的窗口,都可以保存为图片.

  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值