【问题标题】:Is it safe to call QImage::save() before QPainter::end()在 QPainter::end() 之前调用 QImage::save() 是否安全
【发布时间】:2012-12-05 13:59:10
【问题描述】:

在这段代码中:

QPainter painter(&image);

// do painting .......

painter.end(); // is this needed?
image.save(tempFileName);

我是否需要在保存 QImage 之前关闭 QPainter,以便刷新所有更改,或者我可以在关闭 QPainter 对象之前保存它吗?

【问题讨论】:

  • 我认为只在painter.end() 之后保存是个好主意。该文档没有准确指定通过调用end() 释放哪些资源。仅在完成后才编写图像似乎也更合乎逻辑,除非您不想这样做...

标签: c++ qt qpainter qimage


【解决方案1】:

是的,您应该在致电image.save() 之前致电painter.end()painter.end() 的行为最终取决于在您的程序运行的任何平台上使用的底层绘制引擎。您可以在 some 平台上使用 some 版本的 Qt 之前调用 image.save() painter.end(),但更改您的平台或您的 Qt 版本可以以后给你带来麻烦。

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 2015-10-05
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    相关资源
    最近更新 更多