QGraphicsScene保存为文件并打开的问题

时间:2022-04-25 11:49:52
在QGraphicsScene中添加了很多自定义的可编辑的QGraphicsItem,请问如何保存为文件,并能打开?打开后自定义的QGraphicsItem照样能继续编辑?

4 个解决方案

#1


这个QGraphicsItem是界面部分,界面显示的内容可以根据数据来表示,也就是定义一个结构,如

typedef struct tagItemData {
int x, y;
int radius;
int r,g,b;//color
} TItemData;

比如我的项上是一个圆,data可以是圆在项上的位置,半径,圆的颜色,如上所示,这样你就可以把这分数据保存到文件里,

下次打开的时候,根据这个数据,你就又可以还原出项了。

#2


在Save的时候用QDataStream,将你要保存的内容进行序列化,
加载的时候 有进行反序列话。把他读到内存就ok

#3


举个简单的例子,如果你画了一系列的圆,那么你只需要保存所有圆的圆心和半径即可,打开时读取这些圆心和半径数据,并重新描绘出来。
难的不是怎么保存,而是怎么实现这些QGraphicsItem对象,因为你所说的可编辑的QGraphicsItem,是需要自己实现的吧?或者你说说看,“可编辑”指的是什么?

#4


你好楼主,我现在遇到同样的问题,请问你怎么解决的??

#1


这个QGraphicsItem是界面部分,界面显示的内容可以根据数据来表示,也就是定义一个结构,如

typedef struct tagItemData {
int x, y;
int radius;
int r,g,b;//color
} TItemData;

比如我的项上是一个圆,data可以是圆在项上的位置,半径,圆的颜色,如上所示,这样你就可以把这分数据保存到文件里,

下次打开的时候,根据这个数据,你就又可以还原出项了。

#2


在Save的时候用QDataStream,将你要保存的内容进行序列化,
加载的时候 有进行反序列话。把他读到内存就ok

#3


举个简单的例子,如果你画了一系列的圆,那么你只需要保存所有圆的圆心和半径即可,打开时读取这些圆心和半径数据,并重新描绘出来。
难的不是怎么保存,而是怎么实现这些QGraphicsItem对象,因为你所说的可编辑的QGraphicsItem,是需要自己实现的吧?或者你说说看,“可编辑”指的是什么?

#4


你好楼主,我现在遇到同样的问题,请问你怎么解决的??