wxPython의 OnKeyDownEvent에 약간의 문제가 있습니다. 사용자가 문자 (예 : A,), /, é, & 등)를 입력하는 경우 다르게 행동하고 싶습니다. 탐색 (화살표 키, pageUp/pageDown, 집/끝, Ctrl + A 또는 C 또는 V 등). 기본적으로 다음과 같이 수정 자와 키 코드를 추출합니다.OnKeyDownEvent, 문자 또는 탐색 입력
modifiers = e.GetModifiers()
key = e.GetUnicodeKey()
if not key:
key = e.GetKeyCode()
하지만 그 후에는 다소 복잡합니다. 잠시 동안 나는 키 값을 테스트했다 :
if modifiers == wx.MOD_NONE and 0 < key < 255:
그러나 이것은별로 효과가 없다. 예를 들어 오른쪽 괄호에는 분명히 255보다 큰 키 코드가 있습니다.
내가 이런 일을하는 이유를 알고 싶다면 사례 연구가 약간 이상합니다. 텍스트가 프로그래밍 방식으로 입력되는 거대한 텍스트 영역이 있습니다. (멀리있는 서버에 연결을 통해) 사용자가이 필드에 입력 할 수 있습니다. 그러나 그가 그렇게하면 커서는 마지막 줄로 이동합니다 ... 마지막 줄을 제외하고는 읽기 전용 텍스트 영역을 갖는 것과 조금 비슷합니다. 접근성을 이유로이 작업을 수행하지만 두 개의 별도 필드를 사용하면 훨씬 간단 할 것입니다. 그렇지만 스크린 리더에게는 그리 좋지 않습니다.
도움 주셔서 감사합니다.
예, 해결책 일 수도 있지만 입력 키보다 확실히 적습니다. –
은 가장 분명한 해결 방법 인 것처럼 보이지만 사용자의 요구 사항을 어떻게 든 충족시키지 않으면 답변으로 받아 들여야합니다. – user2682863