Qt의 실행 취소 프레임워크 개요
소개
Qt의 실행 취소 프레임워크는 애플리케이션에서 실행 취소/다시 실행 기능을 구현하기 위한 Command 패턴의 구현입니다.
Command 패턴은 애플리케이션의 모든 편집이 명령 객체의 인스턴스를 생성하여 수행된다는 아이디어에 기반합니다. 명령 객체는 문서에 변경 사항을 적용하고 명령 스택에 저장됩니다. 또한 각 명령은 변경 사항을 실행 취소하여 문서를 이전 상태로 되돌릴 수 있는 방법을 알고 있습니다. 애플리케이션이 명령 객체만 사용하여 문서의 상태를 변경하는 한, 스택을 아래로 내려가면서 각 명령에 대해 차례로 실행 취소를 호출하여 일련의 명령을 실행 취소할 수 있습니다. 스택을 위로 이동하고 각 명령에 대해 다시 실행을 호출하여 명령 시퀀스를 다시 실행할 수도 있습니다.
클래스
프레임워크는 네 개의 클래스로 구성됩니다:
- QUndoCommand 는 실행 취소 스택에 저장된 모든 명령의 기본 클래스입니다. 문서의 단일 변경 사항을 적용(다시 실행)하거나 실행 취소할 수 있습니다.
- QUndoStack 는 QUndoCommand 객체의 목록입니다. 문서에서 실행된 모든 명령이 포함되어 있으며 실행 취소 또는 재실행을 통해 문서의 상태를 앞뒤로 롤백할 수 있습니다.
- QUndoGroup 은 실행 취소 스택 그룹입니다. 애플리케이션에 실행 취소 스택이 두 개 이상(일반적으로 열린 문서마다 하나씩) 있을 때 유용합니다. QUndoGroup 은 그룹의 모든 스택에 대해 실행 취소/다시 실행 슬롯을 한 쌍으로 제공합니다. 실행 취소 및 다시 실행 요청을 활성 스택(사용자가 현재 편집 중인 문서와 연결된 스택)으로 전달합니다.
- QUndoView 실행 취소 스택의 내용을 보여주는 위젯입니다. 보기에서 명령을 클릭하면 문서의 상태가 해당 명령으로 롤백되거나 앞으로 이동합니다.
개념
다음 개념이 프레임워크에서 지원됩니다:
- 정리 상태: 문서가 디스크에 저장된 상태로 들어가고 나갈 때 신호를 보내는 데 사용됩니다. 일반적으로 저장 작업을 비활성화하거나 활성화하고 문서의 제목 표시줄을 업데이트하는 데 사용됩니다.
- 명령 압축: 명령 시퀀스를 단일 명령으로 압축하는 데 사용됩니다. 예시: 텍스트 편집기에서 문서에 개별 문자를 삽입하는 명령을 텍스트의 전체 섹션을 삽입하는 단일 명령으로 압축할 수 있습니다. 이렇게 큰 변경 사항은 사용자가 실행 취소하고 다시 실행하기가 더 편리합니다.
- 명령 매크로: 한 번에 실행 취소하거나 다시 실행할 수 있는 일련의 명령입니다. 간단한 명령 집합을 더 복잡한 명령으로 구성할 수 있으므로 애플리케이션 작성 작업을 간소화합니다. 예를 들어, 문서에서 선택한 개체 집합을 이동하는 명령은 각각 하나의 개체를 이동하는 명령 집합을 결합하여 만들 수 있습니다.
QUndoStack 메뉴나 도구 모음에 삽입할 수 있는 편리한 실행 취소 및 다시 실행 QAction 개체를 제공합니다. 이러한 작업의 텍스트 속성은 트리거될 때 실행 취소되거나 다시 실행될 명령을 항상 반영합니다. 마찬가지로 QUndoGroup 은 항상 활성 스택의 실행 취소 및 다시 실행 동작처럼 작동하는 실행 취소 및 다시 실행 동작을 제공합니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.