TextUndo 위젯을 사용하여 여러 실행 취소를 구현할 수 있다는 것을 알고 있습니다. 하지만 다시 실행 기능은 없습니다.스크롤하여 여러 실행 취소/다시 실행
여러 실행 취소 및 다중 실행을 모두 구현하려면 어떻게해야합니까?
TextUndo 위젯을 사용하여 여러 실행 취소를 구현할 수 있다는 것을 알고 있습니다. 하지만 다시 실행 기능은 없습니다.스크롤하여 여러 실행 취소/다시 실행
여러 실행 취소 및 다중 실행을 모두 구현하려면 어떻게해야합니까?
text
위젯은 완전히 실행 취소/다시 실행 기능을 지원합니다. 당신은 단지 그것을 켜야 만합니다; text
의 모든 용도가 그런 종류의 것을 원하지 않기 때문에 기본적으로 해제되어 있습니다. 이 기능을 사용하려면 부울 -undo
위젯 옵션을 true로 설정하면됩니다. 간단합니다 (Tcl 이외의 다른 언어 (예 : Tkinter의 경우 undo
)에서 작성하는 방식이 조금 다를 수도 있지만).
그러나 PerlTk는 모든 것을 혼란스럽게 만듭니다. 어떤 이유에서든 Tk::Text
위젯은 실행 취소/다시 실행을 지원하지 않습니다 (이유는 무엇입니까?) 기계가 거기에 뚫고 들어와 있습니다. Tk::TextUndo
위젯에 다시 실행 기능이 표시되지 않습니다 (왜 지구상에 없습니까?) 이것들은 Tk 자체가 아니라 PerlTk의 모든 제한 사항입니다. 이 경우 가장 좋은 내기는 Tk::Text::SuperText
클래스 일 수 있지만 나에게 그것은 내가 핵심 Tk 기능으로 간주하는 것을 수행하는 것처럼 매우 이상합니다.
아마도 CPAN 문서가 오래된 것일 수도 있습니다.
문제는 그 '가상 이벤트 회 할당 바인딩'<> '(이맥스 형상 풀칠을 구현하는) 가상 이벤트'<> '. 보통 Tk::Text
에는 실행 취소 기능이 없으므로 여기서 C-y
바인딩을 사용하는 것이 좋습니다. 불행하게도이 바인딩은 Tk::TextUndo
을 사용할 때 충돌합니다.
다음과 같은 가능성이 있습니다
<<Paste>>
에 대한 C-y
바인딩을 제거하십시오. 예 : 사용하여 : $mw->eventDelete('<<Paste>>', '<Control-Key-y>');
을 나는이 펄/Tk의 소스 자체가 최고의 해결 될 수있는 방법을 모르겠습니다. 가장 간단한 것은 '<>'에 대한 emacs 키 바인딩을 제거하는 것이지만, emacs 사용자는 불행 할 수 있습니다. 나는 제안에 열려 있습니다 ...
Tkinter와 같이 할 수있는 Tcl 명령을 주입 할 수 있습니까? –