我已经创建了自己的类,用于保存向量的向量,每个位置保持一个自定义QGraphcsItem(图表)。我试图创建撤销/重做功能,我采用的方法是使用堆栈来保存图表的每个状态。这两种方法我想是:Qt的C++ - 克隆对象
创建顶级QVector,这反过来将需要克隆它里面的所有的子向量,然后将需要复制所有的QGraphicsItems的克隆。我想我可以循环遍历每个维度,为外部循环创建QVector,然后在内部循环中克隆QGraphicsItem,除非可以简单地克隆基本QVector(并且内在地克隆里面的所有内容 - 目前里面的所有内容都是指针)。
本质上建立一个新的QVector出图表的当前状态,而不是直接克隆图表。每个的QGraphicsItem具有get/set函数来获取我需要的任何属性,所以我可以只创建一个新的顶级QVector,外环创建各行的新QVector,则内环创造新QGraphicsItems,并设置在原有的性能图表。
有没有简单的方法来克隆一个项目,克隆一切内部?或者我基本上必须实现自己的克隆功能并“重建”当前状态?
Qt拥有一个撤销/重做的实现,你读过吗? http://developer.qt.nokia.com/doc/qt-4.8/qundo.html – borges 2012-01-28 23:01:56
请注意,'QGraphcsItem'不可变更 – Lol4t0 2012-01-29 19:28:57