2016-11-05 2 views
2

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보다 큰 키 코드가 있습니다.

내가 이런 일을하는 이유를 알고 싶다면 사례 연구가 약간 이상합니다. 텍스트가 프로그래밍 방식으로 입력되는 거대한 텍스트 영역이 있습니다. (멀리있는 서버에 연결을 통해) 사용자가이 필드에 입력 할 수 있습니다. 그러나 그가 그렇게하면 커서는 마지막 줄로 이동합니다 ... 마지막 줄을 제외하고는 읽기 전용 텍스트 영역을 갖는 것과 조금 비슷합니다. 접근성을 이유로이 작업을 수행하지만 두 개의 별도 필드를 사용하면 훨씬 간단 할 것입니다. 그렇지만 스크린 리더에게는 그리 좋지 않습니다.

도움 주셔서 감사합니다.

답변

2

내비게이션 키를 set()에 정의한 다음 다른 키를 모두 테스트하지 않고 내비게이션 세트에 키가 있는지 확인한 적이 있습니까?
Sets

+0

예, 해결책 일 수도 있지만 입력 키보다 확실히 적습니다. –

+0

은 가장 분명한 해결 방법 인 것처럼 보이지만 사용자의 요구 사항을 어떻게 든 충족시키지 않으면 답변으로 받아 들여야합니다. – user2682863