2011-07-27 125 views
4

如何保存图像(如流程图)在Qt4.7(graphicalcene)的QGraphicScene示例中绘制,以便下次重新绘制程序后重绘,或可以在其他程序中使用。保存QGraphicsScene图像

回答

3

假设你不只是想将场景的光栅保存到png中。

通常情况下,您希望场景中的对象具有自己的保存和恢复功能,以保存对象的属性。您可以通过序列化的对象来操作QDataStream,然后存储该QDataStream在文件中加载早在做这个

例如在多边形是我自己的等级:

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); 
+0

谢谢你,我的想法,我想你在第一个例子所示,以便其他程序可以重绘此图像,以及一些自定义属性(比如我会喜欢添加一些文字,一些条件的流程图)也会随着那张图片完好无损,让我哈哈已经为操作符<<编写了我自己的函数,用于序列化。 – anj