• 15515阅读
  • 17回复

如何保存QGraphicsScene中的内容到文件 [复制链接]

上一主题 下一主题
离线sbtree
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-16
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
想把QGraphicsScene的内容保存到文件,以便再次读入,除了想到使用自定义文件格式进行读写之外,没想到什么好办法。qt中有没有现成的类似功能啊?
windows 7 + VC++2008 + Qt4.5.2
离线sbtree
只看该作者 1楼 发表于: 2008-10-16
大家都没有更好的办法吗?
windows 7 + VC++2008 + Qt4.5.2
离线abrahamchen
只看该作者 2楼 发表于: 2009-09-29
我也想知道,望高人告知
离线qq251569880
只看该作者 3楼 发表于: 2010-01-07
我也是啊,急需解决,希望大家多多帮助
离线babybluema

只看该作者 4楼 发表于: 2010-01-12
同问,有没人知道啊
离线xinqingfly

只看该作者 5楼 发表于: 2010-01-12
得自己定义文件格式及读写函数吧
菜鸟也是鸟
离线zhangxudong

只看该作者 6楼 发表于: 2010-01-12
用QGraphicsScene::render就可以了
离线sbtree
只看该作者 7楼 发表于: 2010-01-12
引用第6楼zhangxudong于2010-01-12 16:55发表的  :
用QGraphicsScene::render就可以了

这只能保存为图片文件,如果再想从该文件中复原出来,几乎是不可能的,目前唯一的方法就是利用自定义文件格式进行读写,或许将来qt搞个序列化的函数那就好了
windows 7 + VC++2008 + Qt4.5.2
离线zhangxudong

只看该作者 8楼 发表于: 2010-01-12
不知你是不是想将item存为文件,再读取重新生成item,这样是比较困难,用QPicture可以存为svg格式,可以重新load
其实GraphicsView模块在MVC结构中只是表示View,如果想保存,保存M(数据)要好一些
离线sbtree
只看该作者 9楼 发表于: 2010-01-13
我目前的做法就是自定义文件,把item的所有属性值都保存起来,包括位置,尺寸等信息,每次打开文件的时候,根据读入的信息创建item
windows 7 + VC++2008 + Qt4.5.2
离线yleesun

只看该作者 10楼 发表于: 2010-01-14
保存为SVG格式文件后,不可以在把SVG格式文件重新加载吗?
离线hxcan

只看该作者 11楼 发表于: 2010-01-14
引用第5楼xinqingfly于2010-01-12 16:37发表的  :
得自己定义文件格式及读写函数吧
本座已达到法定娶亲年龄,欲购从速,价格面谈。
杀人容易爱人难。
作为一个太极美术工程师,我深刻地感受到:世风日下、人心不古。
http://StupidBeauty.com/Blog
离线sbtree
只看该作者 12楼 发表于: 2010-07-27
引用第10楼yleesun于2010-01-14 09:30发表的  :
保存为SVG格式文件后,不可以在把SVG格式文件重新加载吗?

可以是可以,问题是你如何在创建一个跟原始的一样的Item呢?难道都用PixmapItem吗?
例如原始的是一个QPainterPathItem,保存为svg以后,如果再读取回来呢?
windows 7 + VC++2008 + Qt4.5.2
离线乙醚

只看该作者 13楼 发表于: 2012-03-12
回 12楼(sbtree) 的帖子
时隔一年多,兄台有木有解决这个问题呀
离线regbbs
只看该作者 14楼 发表于: 2012-04-04
把每个item的需要保存/恢复数据用qdatastream处理
离线terry_zhouji
只看该作者 15楼 发表于: 2012-04-24
这个应该是自己定义格式吧,然后保存item的类型、位置,保存为文件,然后再写个函数把它读出来
离线faye100
只看该作者 16楼 发表于: 2012-04-26
我的做法就是输出属性。。。。

顺便问下 怎么清除scene的所有item啊,clear()函数一用就系统崩溃。。。。
离线ansly20060

只看该作者 17楼 发表于: 2012-12-12
我用QDataStream保存了item的属性,现在如何打开,恢复啊??能给个小代码啊
快速回复
限100 字节
 
上一个 下一个