저는 PyQt에서 텍스트 편집기를 만들고 있습니다. 난 내 자신에 전적으로 모든 키보드 입력을 처리하는, 그래서 너무처럼 내 QTextEdit
클래스에서 이벤트 핸들러를 다시 구현했습니다PyQt 애플리케이션에서 Option/Alt 키를 완전히 제어하려면 어떻게해야합니까?
class GorgTextEdit(QtGui.QTextEdit):
# customized QTextEdit class with reimplemented event handles
gorg_key_press_signal = pyqtSignal(str, int, QtGui.QWidget)
gorg_key_release_signal = pyqtSignal(str, int, QtGui.QWidget)
def __init__(self):
super(GorgTextEdit, self).__init__()
def keyPressEvent(self, e):
self.gorg_key_press_signal.emit("p", e.key(), self)
def keyReleaseEvent(self, e):
self.gorg_key_release_signal.emit("r", e.key(), self)
는 기본적으로 나는에 직접 GorgTextEdit
의 모든 키 이벤트로부터 신호를 보내고있다 Commander
개체는 키 시퀀스를 기반으로 함수를 호출하고 그 중 일부는 해당 메서드를 직접 호출하여 일반 텍스트를 GorgTextEdit
개체에 다시 삽입합니다. 나는 일반 텍스트를 삽입하고 Commander
객체에 의해 호출 된 이동 및 삭제 키를 처리하기위한 명령을 작성했습니다. 대상 위젯 (원래 키 시퀀스의 소스)이 인수로 전달되었습니다.
문제는 옵션 키를 누른 채 텍스트 문자를 치면 문제가 발생하여 즉시 내 사령관의 행동을 기다리지 않고 밀교 한 유니 코드 문자를 삽입하는 것입니다. 내 옵션 키를 기본적으로 메타에 매핑하고 싶다. 나는 M-x를 Emacs 스타일의 명령 호출로 구현하기를 바라고있다. 옵션 키를 사용하면 OSX에서 코드를 무시하고 어떤 텍스트 창 에든 권한없이 포커스를 삽입 할 수 있습니다. 바로 지금 M-x
(옵션 x)은 근사 문자 인 ≈
을 삽입합니다.
파이썬 내에서 이러한 OSX 텍스트 삽입 기능을 덮어 쓸 수있는 방법이 있습니까?