2011-07-27 11 views
4

Qt4.7(diagramscene)の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