주로 MacOS에서 개발 된 Qt 응용 프로그램에서 작동하지만 Linux에서도 빌드 및 테스트됩니다.위젯 포커스 탐색을 위해 화살표 키를 캡처하는 Linux에서 Qt의 동작을 비활성화하려면 어떻게합니까?
주 키보드 클래스에서 keyPressEvent() 메서드를 정의하여 특정 키보드 이벤트에 응답합니다. 그 중에서도 Qt :: Key_Left, Qt :: Key_Right 및 Qt :: Key_Space에 응답합니다. 이것은 MacOS에서 잘 작동합니다. 그러나 Linux에서는 이러한 이벤트가 발생하지 않습니다.
Google 검색 중 일부 (Linux에서 응용 프로그램의 동작과 함께 확인)를 사용하는 이유는 Qt가 이러한 키를 응용 프로그램의 GUI에서 단추 위젯의 키보드 탐색에 사용하기 때문인 것으로 보입니다. 리눅스에서 화살표 키를 누르면 모든 활성화 된 버튼 위젯을 순서대로 선택합니다. 스페이스 바를 클릭하면 현재 선택된 버튼이 눌러집니다.
내가 지금까지 검색 할 수 있었던 것은 단추를 이벤트를 무시하고 함께 전달함으로써이 동작을 피하기 위해 하위 단추를 지정하거나 특정 단추에 필터를 적용하는 방법에 대한 제안입니다. 그러나 나는 GUI에 넣은 버튼 위젯마다이 작업을 수행하고 싶지 않습니다. 그것은 절름발이입니다.
이 동작을 전역 적으로 사용하지 않도록 설정하고 내 앱 코드에서 실제로 모든 화살표 키 및 스페이스 바 이벤트를 가져올 수있는 방법이 있습니까?
이것이 Qt의 경우에도 해당되는지 확인할 수 있습니까? Key_PageUp Qt :: Key_PageDown? – BrianTheLion