1

我对文件流式传输和尝试将场景项目保存到文件以供以后使用没有任何经验。我将 PySide 与 Qt 4.7 库一起使用。我是否必须使用 writeRawData 来保存项目列表或什么?

我将不胜感激任何帮助。一些例子会让我很开心。谢谢。

4

1 回答 1

1

无法将 QGraphicsItem 直接保存在可以重新加载的文件中(像素图中除外)。

但是,您可以创建一个文件,其中包含视图中每个项目的描述。您要做的是列出定义每个项目的所有信息(项目类型、位置、形状等)并将它们存储在文件中。

例如,为 rect、ellipse 和 line items 收集信息:

scene = QGraphicsScene();
scene.addEllipse( 100, 100, 50, 50 )
scene.addRect( 200, 12, 120, 50 )
scene.addLine( 50, 70, 100, 400 )

for item in scene.items():
    if item.type() == QGraphicsEllipseItem().type():
        print "Ellipse",  item.rect()
    elif item.type() == QGraphicsRectItem().type():
        print "Rectangle",  item.rect()
    elif item.type() == QGraphicsLineItem().type():
        print "Line", item.line().p1(), item.line().p2()
于 2013-03-01T12:42:23.023 回答