Python 如何在文件中保存Qt图形场景项并再次打开?

Python 如何在文件中保存Qt图形场景项并再次打开?,python,qt,qt4,pyqt,pyside,Python,Qt,Qt4,Pyqt,Pyside,我没有任何关于文件流和尝试将场景项目保存到文件以供以后使用的经验。 我正在使用PySide和Qt4.7库。我是否必须使用writeRawData保存项目列表或其他什么 我将感谢任何帮助。举个例子会让我开心。谢谢。没有办法直接将QGraphicsItem保存到可以重新加载的文件中(pixmap除外) 但是,您可以创建一个包含视图中每个项目的描述的文件。您需要做的是列出定义每个项目的每个信息(项目类型、位置、形状等),并将其存储在文件中 例如,收集rect、ellipse和line项目的信息: sc

我没有任何关于文件流和尝试将场景项目保存到文件以供以后使用的经验。 我正在使用PySide和Qt4.7库。我是否必须使用writeRawData保存项目列表或其他什么


我将感谢任何帮助。举个例子会让我开心。谢谢。

没有办法直接将QGraphicsItem保存到可以重新加载的文件中(pixmap除外)

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

例如,收集rect、ellipse和line项目的信息:

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()

没有办法直接将QGraphicsItem保存在可以重新加载的文件(pixmap除外)中

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

例如,收集rect、ellipse和line项目的信息:

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()

谢谢,那我就用泡菜。谢谢,那我就用泡菜。