2010-12-21 6 views
1

Qt4.x를 사용하여 특정 키 조합을 누르면 화면에 무언가를 표시하고 싶습니다. 구성 가능한 응용 프로그램 전체 바로 가기 여야하므로 첨부 된 바로 가기가있는 QAction을 사용하여이 작업을 수행하고 싶습니다. 문제는 사용자가 바로 가기를 놓을 때 감지 할 방법이없는 것 같습니다. 자동 반복 옵션과 함께 원샷 타이머로 시도했지만이 방법은 신뢰할 수없고 숨기기 메서드가 호출되기 전에 지연이 있습니다.Qt4 : QAction 바로 가기 키가 해제 될 때 감지하는 방법

답변

0

키보드 단축키를 사용하려면 QShortcut을 사용해야합니다.

4

Qt에서 제공하는 바로 가기 메커니즘을 사용하면 activated 인 키 조합에만 반응 할 수 있습니다.

왜 키 릴리스를 detec해야합니까? 필요한 경우 아마도 keyPressEventkeyReleaseEvent 함수를 다시 구현해야하지만, 그 전에 키 릴리스 감지가 실제로 필요한지 두 번 생각할 것입니다.

+0

아이디어는 사용자가 바로 가기를 누르면 탐색 HUD를 표시하는 것입니다. 일단 출시되면 다시 숨겨집니다. keyPress/ReleaseEvent 구현은 옵션이지만 현재 포커스에 의존하지 않고 바로 가기를 응용 프로그램 전체에서 사용하도록하고 싶습니다. – Pakewak

+0

Qt에서 HUD 작업을 한 번도 해보지는 않았지만'QShortcut'이 당신이하고 싶은 일을하지 않을 것이라고 확신합니다. 나는 keyPressEvent와 keyReleaseEvent 아이디어를 고수하고, [이벤트 필터] (http://doc.qt.nokia.com/stable/qobject.html#installEventFilter)를 사용하여 응용 프로그램의 광범위한 키 감지를 사용합니다. –

+0

좋습니다. 감사! – Pakewak

관련 문제