벡터의 벡터를 포함하는 고유 한 클래스를 만들었습니다. 각 클래스에는 사용자 정의 QGraphcsItem (차트)이 있습니다. 나는 실행 취소/다시 실행 기능을 만들려고 시도하고 있으며, 취하고있는 접근법은 스택을 사용하여 차트의 각 상태를 유지하는 것입니다. 내가 생각하고 두 가지 방법은 다음과 같습니다 Qt C++ - 객체 복제
- 차례로 다음 모든 QGraphicsItems를 복제 할 필요가 그 안에있는 모든 하위 벡터를 복제 할 필요가 최상위 레벨 QVector의 복제를 만듭니다. 기본 QVector를 복제 할 수 있고 (내부의 모든 것을 본질적으로 복제 할 수 없다면 현재 내부의 모든 것이 포인터입니다.) 각 차원을 반복하면서 외부 루프에 대한 QVector를 만든 다음 내부 루프에 QGraphicsItem을 복제 할 수 있습니다.
기본적으로 차트를 직접 복제하는 대신 차트의 현재 상태에서 새 QVector를 빌드하십시오. 각 QGraphicsItem에는 필요한 모든 속성을 가져 오는 get/set 함수가 있으므로 새로운 최상위 QVector, 각 행에 대해 새 QVector를 만드는 외부 루프, 새 QGraphicsItems를 만드는 내부 루프 및 원래 속성을 설정하기 만하면됩니다. 차트.
내부적으로 모든 항목을 복제하는 하나의 항목을 복제하는 간단한 방법이 있습니까? 아니면 기본적으로 내 자신의 복제 기능을 구현하고 현재 상태를 "다시 빌드"해야합니까?
Qt에는 실행 취소/다시 실행이 있습니다. 읽었습니까? http://developer.qt.nokia.com/doc/qt-4.8/qundo.html – borges
'QGraphcsItem'은 사용할 수 없습니다. – Lol4t0