2011-07-27 2 views
4

Qt4.7 (diagramscene)의 QGraphicScene 예제에서 이미지 (예 : 플로 차트)를 저장하는 방법은 다음 번에 다시 그리거나 프로그램을 다시 실행하거나 다른 프로그램에서 사용할 수 있도록 그리는 방법입니다.QGraphicsScene 이미지 저장

답변

3

장면의 래스터 저장을 png로만하는 것은 아니라고 가정합니다.

일반적으로 장면의 오브젝트가 오브젝트의 특성을 저장하는 고유 한 저장 및 복원 기능을 갖기를 원할 것입니다. 당신은 다시로드하는 파일에 그 QDataStream를 저장 한 후 QDataStream에 개체를 serialising 및하여이 작업을 수행 할 수

예를 들어 다각형 내 자신의 클래스입니다 :. 당신은 단지 원하는 않은 경우

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