2014-10-04 5 views
0

QPlainTextEdit으로 코드 편집기를 구축하고 있습니다. 기본적으로 한 줄에 여러 단어를 입력하고 실행 취소를 누르면 전체 줄이 삭제됩니다. 모든 캐릭터에서 수동으로 스택을 실행 취소하도록 푸시하고 싶습니다. 실행 취소를 클릭하면 이전 캐릭터가 제거됩니다. 그런 다음 비 문자 등의 캡처 만 구현할 수 있으므로 한 번에 하나의 논리 토큰을 실행 취소합니다. 어떻게해야합니까?QPlainTextEdit - 수동으로 실행 취소 스택을 푸시

나는 너희들이 나를 도울 수 있기를 바랍니다. 미리 감사드립니다.

+0

, 그리고 1000이을 취소 하시겠습니까? 어쩌면 마지막 문자를 삭제할 하나의 바로 가기 나 버튼을 제공하거나 모든 실행 취소 스택을 파괴하는 대신 "스마트"삭제를 수행하고 원하는대로 단일 문자로 채워야합니다. – Chernobyl

+0

지금 당장은 입력 된 모든 공간에서 스택을 실행 취소하는 방법을 보여 주면 도움이 될 것입니다. 그런 다음, 나머지는 알아낼 것입니다. – LogicStuff

답변

0

은 내가 keyPressEvent() 재정 의하여이 작업있어 : 1000 개 문자를 붙여 넣습니다 예를 들어

void CodeEditor::keyPressEvent(QKeyEvent *event) 
{ 
    QTextCursor cursor = textCursor(); 
    cursor.beginEditBlock(); 
    QPlainTextEdit::keyPressEvent(event); 
    cursor.endEditBlock(); 
    setTextCursor(cursor); 
}