2013-10-07 1 views
3

위젯에 많은 QTextEdit 컨트롤이 포함되어 있습니다. 실제로이 모든 QTextEditsQTreeWidget의 항목 위젯으로 설치됩니다. 이러한 모든 컨트롤은 제자리에서 편집 할 수 있습니다.QTextEdit이 새로운 실행 취소 항목을 가져올 때 알림을 받으십시오

그래서 각 QTextEdit 컨트롤 대신 내 위젯에 control + "Z/Y" 프로세스를 통합하여 "실행 취소 스택"을 구현해야합니다. 이를 위해 특정 QTextEdit이 새로운 실행 취소 항목을 만들 때마다 기록을 남겨야합니다. 따라서 control+Z을 누르면 컨트롤의 편집 (실행 취소() 메서드 호출) QTextEdit을 실행 취소하고 다시 누르면 해당 컨트롤의 편집 (실행 취소() 메서드 호출) 중 다른 QTextEdit의 편집이 취소됩니다.

그러나 문서를 통해 검색 할 때 QTextEdit에 대해 새로운 실행 취소 항목이 생성되었다는 알림을 발견하지 못했습니다. 그리고 QTextEdit의 실행 취소 정책에 대해 알지 못하는 경우가 있는데, 여러 번의 키 누르기가 하나의 단일 실행 취소 항목으로 압축되어 있으므로 키 누르기 이벤트 필터를 사용하여 내 자신의 QUndoCommand을 녹음하면 QTextEdit은 편리한 방법으로 실행 취소()/다시 하다().

어떻게 이것을 얻을 수 있습니까?

+0

여러 textedit 컨트롤과 관련된 다시 실행 취소를 취소합니다. 하지만 내 재실행 취소 콜은 treeItem에서 가져올 수 있습니다. – miguel

+0

미안하지만 충분히 명확하지 않습니다. 내가 원하는 것은 사용자가 treeWidget에서 Ctrl + Z 키를 누르면 각 QTextEdit를 선형 적으로 실행 취소합니다. textEdit01에서 텍스트를 변경 한 다음 textEdit02에서 텍스트를 변경하고 treeWiget에서 undo를 누르면 textEdit02 changement가 먼저 실행 취소 된 다음 textEdit01이 실행 취소됩니다. – miguel

+0

지금 QTextEdit에서 하나의 실행 취소를 할 수 있습니까? – Tab

답변

2

당신이 찾고있는 신호는 QTextDocument::undoCommandAdded입니다.

관련 문제