이 주제에 대한 많은 정보를 보았지만 정확히이 질문에 대한 답변이 아닙니다. 나는 대부분의 반대 문제가 있습니다. 단추에 포커스가있을 때 Enter 단추가 단추를 누르는 것을 막고 싶습니다. 그리고 이렇게하기 위해, 단순히 버튼이 Enter 버튼 누르기를 수락하지 못하도록하고 싶지는 않지만 콜백 메소드에서 Enter 버튼을 조건부로 캡처하려고합니다. 지금, 내 파이썬 프로그램에서 모든 위젯에 다음과 같은 이벤트를 바인딩 한 다음 입력 버튼을 누를 때 나는 내 콜백 메소드에 콜백을 얻을 수 있어요 때wxPython Enter Button 이벤트
parent.Bind(wx.EVT_CHAR, self.CharInputCallback)
EVT_CHAR 이벤트가 실제로 발생합니다. 내 문제는 의도적으로 이벤트를 건너 뛰지는 않았지만 사실상 버튼을 클릭하는 입력 버튼의 기능이 여전히 진행된다는 것입니다 (이벤트 전달). 이 일이 일어나고 내 콜백 메서드를 통해 이벤트를 전달하지 확신합니다 (나는 텍스트 상자에 문자를 캡처하여 이것을 테스트했습니다) 나는 입력 단추가 캡처하지 않는 추가 이벤트를 throw합니다 용의자 . 나는 바인딩하고 입력 버튼의 "가상 클릭"을 방지하기 위해 추가로 다음과 같은 이벤트를 캡처 해봤 :
parent.Bind(wx.EVT_TEXT_ENTER, self.CharInputCallback)
parent.Bind(wx.EVT_KEY_UP, self.CharInputCallback)
parent.Bind(wx.EVT_KEY_DOWN, self.CharInputCallback)
을하지만 내가 초점 버튼을 계속 클릭, Enter 키를 누르면. 요약하면 입력 버튼을 누르면 추가 이벤트가 발생합니까? 그렇다면 어떤 이벤트가 특히 "가상 클릭"하는 것입니까? 내가 찾은 포럼 중 대부분은 입력 버튼을 눌렀을 때를 인식하는 방법에 대해 논의했지만 버튼이 집중되어있을 때이를 인식하고 비활성화하려고합니다.
키 업 이벤트가 버튼 클릭을 유발 한 이벤트임을 알게되었습니다. 또는 결국 버튼 클릭으로 이어졌습니다. 캡쳐하여 키 업 이벤트를 건너 뛰지 않아서 입력 버튼이 포커스가있는 버튼을 클릭하는 것을 방지 할 수있었습니다. 흥미롭게도, 이전에 언급 한 모든 이벤트를 바인딩 할 때 몇 가지 문제가있었습니다. 현재 EVT_CHAR 및 KEY_UP 이벤트를 캡처 중입니다. 이것은 트릭을 할 것으로 보인다. – user1777820
허. 이상한. 나는 Windows 7에서 그 동작을 알아 차리지 못했습니다. 어쨌든, 당신이 알아 낸 것을 기쁘게 생각합니다. –