• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

keyPressEvent 함수 궁금합니다.

20.01.11 10:35 작성 조회수 675

1

keyPressEvent 나 mousePressEvent 함수 같은경우는 

PyQt에서 약속되어있는 함수인가요???

답변 1

답변을 작성해보세요.

1

네 말씀하신데로 PyQt 에서 지정한대로 사용하는 함수 입니다. 좀 더 부연설명을 드리자면..

https://doc.qt.io/qt-5/qkeyevent.html

위 링크에서 Detail Description 내용을 보면

-------------------------------------------------------------------------------------------------------------

상세 설명

키를 누르거나 놓을 때 키보드 입력 포커스가있는 키 이벤트가 위젯으로 전송됩니다.

키 이벤트에는 수신자가 키 이벤트를 처리할지 여부를 나타내는 특수 승인 플래그가 있습니다. 이 플래그는 기본적으로 QEvent :: KeyPress 및 QEvent :: KeyRelease 에 대해 설정되므로 키 이벤트를 수행 할 때 accept () 를 호출 할 필요가 없습니다 들어 QEvent :: ShortcutOverride 수신기가 명시 적으로 재정을 트리거 할 수있는 이벤트를 수용 할 필요가있다. 키 이벤트에서 ignore ()를 호출 하면이를 상위 위젯으로 전파합니다. 위젯이이를 수락하거나 이벤트 필터가이를 사용할 때까지 이벤트는 상위 위젯 체인으로 전파됩니다.

는 QWidget ::는, setEnabled () 함수는 위젯 비활성화 마우스와 키보드 이벤트를 사용하거나 사용하는 데 사용할 수 있습니다.

이벤트 핸들러 QWidget :: keyPressEvent (), QWidget :: keyReleaseEvent (), QGraphicsItem :: keyPressEvent () 및 QGraphicsItem :: keyReleaseEvent ()는 키 이벤트를 수신합니다.

QFocusEvent 및 QWidget :: grabKeyboard () 도 참조하십시오 .

-------------------------------------------------------------------------------------------------------------

원래 영문인데 구글 번역기를 돌린 내용입니다만 어느정도 대강 이해하실 수 있을겁니다. 여기서 QWidget::keyPressEvent() 함수 링크를 따라가 보면.....

우측 상단에 virtual protect 라고 씌여있는데 원래 qt 가 c/c++ 로 작성된거라 저렇게 함수 원형이 표기 되나 봅니다. 가상(virtual) 함수는 쉽게 상속받는 클래스가 위 함수를 오버라이딩 되게 선언해놨다 라고 보시면됩니다.