Qt기본_07. 기본위젯 활용해보기 (키이벤트, 키보드입력이벤트 받기)
- QT/기본예제(기초)
- 2018. 10. 24. 16:37
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- RSS 방지선 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 사용 : 키이벤트, 라벨
- 실행파일
- 소스파일
1. 레이아웃 잡기
- 라벨 하나 넣어두었다.
2. 헤더파일 수정
- QKeyEvent 헤더파일 삽입
- void KeyPressEvent(QKeyEvent *event) 함수 오버라이딩 선언
3. cpp 파일
- 라인에디트 속성 설정 (가운데정렬)
- 읽기전용이라고 적혀있는 주석은 무시하자.
- 키입력이벤트 함수 구현
- 입력받은 키의 이름을 화면에 보여주게 해보았다.
- 윈도우 환경에서, 삼성키보드를 사용중인데 PrintScreenKey 를 제외한 모든 키가 이벤트에 걸리는 것을 확인하였다.
- 스크린샷 키는 아무래도, 프로그램에 가기전에 운영체제쪽에서 가로채가는 느낌이다. 나중에 다른 예제를 진행함에 있어 좀 더 알아보도록 하겠다.
4. 결과화면
5. 키이벤트 함수 코드
- 소스파일도 따로 올려두긴 했지만, 이번것은 보고 치기엔 좀 길거 같아서
- 따로 소스파일을 게시하였다.
// C lang // KeyPressEvent(QKeyEvent *event) 함수 구현 void Dialog::keyPressEvent(QKeyEvent *event) { QString text; switch(event->key()) { case Qt::Key_Space: text = "Key_Space"; break; case Qt::Key_Exclam: text = "Key_Exclam"; break; case Qt::Key_QuoteDbl: text = "Key_QuoteDbl"; break; case Qt::Key_NumberSign: text = "Key_NumberSign"; break; case Qt::Key_Dollar: text = "Key_Dollar"; break; case Qt::Key_Percent: text = "Key_Percent"; break; case Qt::Key_Ampersand: text = "Key_Ampersand"; break; case Qt::Key_Apostrophe: text = "Key_Apostrophe"; break; case Qt::Key_ParenLeft: text = "Key_ParenLeft"; break; case Qt::Key_ParenRight: text = "Key_ParenRight"; break; case Qt::Key_Asterisk: text = "Key_Asterisk"; break; case Qt::Key_Plus: text = "Key_Plus"; break; case Qt::Key_Comma: text = "Key_Comma"; break; case Qt::Key_Minus: text = "Key_Minus"; break; case Qt::Key_Period: text = "Key_Period"; break; case Qt::Key_Slash: text = "Key_Slash"; break; case Qt::Key_At: text = "Key_At"; break; case Qt::Key_0: text = "Key_0"; break; case Qt::Key_1: text = "Key_1"; break; case Qt::Key_2: text = "Key_2"; break; case Qt::Key_3: text = "Key_3"; break; case Qt::Key_4: text = "Key_4"; break; case Qt::Key_5: text = "Key_5"; break; case Qt::Key_6: text = "Key_6"; break; case Qt::Key_7: text = "Key_7"; break; case Qt::Key_8: text = "Key_8"; break; case Qt::Key_9: text = "Key_9"; break; case Qt::Key_Colon: text = "Key_Colon"; break; case Qt::Key_Semicolon: text = "Key_Semicolon"; break; case Qt::Key_Less: text = "Key_Less"; break; case Qt::Key_Equal: text = "Key_Equal"; break; case Qt::Key_Greater: text = "Key_Greater"; break; case Qt::Key_Question: text = "Key_Question"; break; case Qt::Key_A: text = "Key_A"; break; case Qt::Key_B: text = "Key_B"; break; case Qt::Key_C: text = "Key_C"; break; case Qt::Key_D: text = "Key_D"; break; case Qt::Key_E: text = "Key_E"; break; case Qt::Key_F: text = "Key_F"; break; case Qt::Key_G: text = "Key_G"; break; case Qt::Key_H: text = "Key_H"; break; case Qt::Key_I: text = "Key_I"; break; case Qt::Key_J: text = "Key_J"; break; case Qt::Key_K: text = "Key_K"; break; case Qt::Key_L: text = "Key_L"; break; case Qt::Key_M: text = "Key_M"; break; case Qt::Key_N: text = "Key_N"; break; case Qt::Key_O: text = "Key_O"; break; case Qt::Key_P: text = "Key_P"; break; case Qt::Key_Q: text = "Key_Q"; break; case Qt::Key_R: text = "Key_R"; break; case Qt::Key_S: text = "Key_S"; break; case Qt::Key_T: text = "Key_T"; break; case Qt::Key_U: text = "Key_U"; break; case Qt::Key_V: text = "Key_V"; break; case Qt::Key_W: text = "Key_W"; break; case Qt::Key_X: text = "Key_X"; break; case Qt::Key_Y: text = "Key_Y"; break; case Qt::Key_Z: text = "Key_Z"; break; case Qt::Key_BracketLeft: text = "Key_BracketLeft"; break; case Qt::Key_Backslash: text = "Key_Backslash"; break; case Qt::Key_BracketRight: text = "Key_BracketRight"; break; case Qt::Key_AsciiCircum: text = "Key_AsciiCircum"; break; case Qt::Key_Underscore: text = "Key_Underscore"; break; case Qt::Key_QuoteLeft: text = "Key_QuoteLeft"; break; case Qt::Key_BraceLeft: text = "Key_BraceLeft"; break; case Qt::Key_Bar: text = "Key_Bar"; break; case Qt::Key_BraceRight: text = "Key_BraceRight"; break; case Qt::Key_AsciiTilde: text = "Key_AsciiTilde"; break; case Qt::Key_Up: text = "Key_Up"; break; case Qt::Key_Down: text = "Key_Down"; break; case Qt::Key_Left: text = "Key_Left"; break; case Qt::Key_Right: text = "Key_Right"; break; case Qt::Key_Escape: text = "Key_Escape"; break; case Qt::Key_F1: text = "Key_F1"; break; case Qt::Key_F2: text = "Key_F2"; break; case Qt::Key_F3: text = "Key_F3"; break; case Qt::Key_F4: text = "Key_F4"; break; case Qt::Key_F5: text = "Key_F5"; break; case Qt::Key_F6: text = "Key_F6"; break; case Qt::Key_F7: text = "Key_F7"; break; case Qt::Key_F8: text = "Key_F8"; break; case Qt::Key_F9: text = "Key_F9"; break; case Qt::Key_F10: text = "Key_F10"; break; case Qt::Key_F11: text = "Key_F11"; break; case Qt::Key_F12: text = "Key_F12"; break; case Qt::Key_Backspace: text = "Key_Backspace"; break; case Qt::Key_Tab: text ="Key_Tab"; break; case Qt::Key_CapsLock: text ="Key_CapsLock"; break; case Qt::Key_Shift: text ="Key_Shift"; break; case Qt::Key_Alt: text ="Key_Alt"; break; case Qt::Key_Control: text ="Key_Control"; break; case Qt::Key_Print: text ="Key_Print"; break; case Qt::Key_ScrollLock: text ="Key_ScrollLock"; break; case Qt::Key_Pause: text ="Key_Pause"; break; case Qt::Key_Insert: text ="Key_Insert"; break; case Qt::Key_Delete: text ="Key_Delete"; break; case Qt::Key_Home: text ="Key_Home"; break; case Qt::Key_End: text ="Key_End"; break; case Qt::Key_PageUp: text ="Key_PageUp"; break; case Qt::Key_PageDown: text ="Key_PageDown"; break; case Qt::Key_Enter: text ="Key_Enter"; break; case Qt::Key_NumLock: text = "Key_NumLock"; break; case Qt::Key_Clear: text = "Key_Clear"; break; case Qt::Key_Return: text = "Key_Return"; break; case Qt::Key_Meta: text = "Key_Meta"; break; case Qt::Key_Menu: text = "Key_Menu"; break; default: text = QString::number(event->key()); } ui->label->setText(text); //qDebug() << QString::number(event->key()); }
'QT > 기본예제(기초)' 카테고리의 다른 글
Qt기본_08. 기본위젯 활용해보기 - 계산기 만들어보기 (키이벤트, 키보드입력이벤트 받기 응용편) (0) | 2018.11.08 |
---|---|
Qt기본_06. 기본위젯 활용해보기 (탭, 데스크탑서비스, 텍스트스트림, 메시지박스, 파일다이얼로그, 파일, 데이트타임) (0) | 2018.10.23 |
Qt기본_05. 기본위젯 활용해보기 (타이머, 파일다이얼로그, 디렉토리, 그래픽뷰, 프로그레스바, 딜레이) (0) | 2018.10.22 |
Qt기본_04. 기본위젯 활용해보기 (버튼, 라벨, 라인에디트, 체크박스, 라디오버튼, 그룹박스, 리스트, 콤보박스, 슬라이더, 다이얼) (0) | 2018.10.18 |
Qt기본_03. 조건문, 반복문, 배열 (0) | 2018.10.18 |