保存QGraphicsScene图像

时间:2011-07-27 12:25:10

标签: qt

如何在Qt4.7(图表场景)的QGraphicSscene示例中保存图像(如流程图),以便下次重新运行程序后重绘,或者可以在其他程序中使用。

1 个答案:

答案 0 :(得分:3)

假设您不仅希望将场景的栅格保存到png。

通常,您希望场景中的对象具有自己的保存和恢复功能,以保存对象的属性。您可以通过将对象序列化为QDataStream然后将该QDataStream存储在文件中以便重新加载来完成此操作。

例如,Polygon是我自己的类:

foreach (QGraphicsItem* currentItem, sceneItems)
{
    data << (int)PolygonItem::Type;
    PolygonItem* item = qgraphicsitem_cast<PolygonItem*>(currentItem);
    item->save(data);
}

如果你只是想要一个png或者一个jpeg,那就简单了:

QImage image = selectedScene->toImage(size);
image.save(fileName);