Pyside6 Qwidget keyEvent 설정

2024. 12. 23. 16:01·Python

Qwidget keyEvent

1) keyPressEvent(event): 키보드 키가 눌릴 때 발생하는 이벤트를 처리
2) keyReleaseEvent(event): 키보드 키를 눌렀다가 뗄 때 발생하는 이벤트를 처리

  • 참고 사이트
    https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QWidget.html#PySide6.QtWidgets.QWidget.keyPressEvent

Qt.key

키 코드 설명
Qt.Key_Escape Escape 키
Qt.Key_Tab Tab 키
Qt.Key_Backtab Backtab 키
Qt.Key_Backspace Backspace 키
Qt.Key_Return Return 키
Qt.Key_Enter Enter 키 (일반적으로 키패드에 위치)
Qt.Key_Insert Insert 키
Qt.Key_Delete Delete 키
Qt.Key_Pause Pause/Break 키 (미디어 재생 일시정지와는 관련 없음)
Qt.Key_Print Print 키
Qt.Key_SysReq SysReq 키
Qt.Key_Clear Apple 키보드의 Clear 키 (다른 시스템에서는 Num Lock이 꺼진 상태에서 숫자 패드의 5와 매핑됨)
Qt.Key_Home Home 키
Qt.Key_End End 키
Qt.Key_Left 왼쪽 방향키
Qt.Key_Up 위쪽 방향키
Qt.Key_Right 오른쪽 방향키
Qt.Key_Down 아래쪽 방향키
Qt.Key_PageUp Page Up 키
Qt.Key_PageDown Page Down 키
Qt.Key_Shift Shift 키
Qt.Key_Control Control 키 (macOS에서는 Command 키)
Qt.Key_Meta Meta 키 (macOS에서는 Control 키, Windows 키보드에서는 Windows 키)
Qt.Key_Alt Alt 키
Qt.Key_AltGr AltGr 키 (Windows에서는 Ctrl+Alt 수정자가 함께 설정됨)
Qt.Key_CapsLock Caps Lock 키
Qt.Key_NumLock Num Lock 키
Qt.Key_ScrollLock Scroll Lock 키
Qt.Key_F1 ~ Qt.Key_F35 F1 ~ F35 키
Qt.Key_Super_L 왼쪽 Super 키
Qt.Key_Super_R 오른쪽 Super 키
Qt.Key_Menu Menu 키
Qt.Key_Hyper_L 왼쪽 Hyper 키
Qt.Key_Hyper_R 오른쪽 Hyper 키
Qt.Key_Help Help 키
Qt.Key_Direction_L 왼쪽 방향키
Qt.Key_Direction_R 오른쪽 방향키
Qt.Key_Space Space 키
Qt.Key_Any Any 키
Qt.Key_Exclam Exclam 키
Qt.Key_QuoteDbl Quote Double 키
Qt.Key_NumberSign Number Sign 키
Qt.Key_Dollar Dollar 키
Qt.Key_Percent Percent 키
Qt.Key_Ampersand Ampersand 키
Qt.Key_Apostrophe Apostrophe 키
Qt.Key_ParenLeft 왼쪽 괄호 키
Qt.Key_ParenRight 오른쪽 괄호 키
Qt.Key_Asterisk 별표 키
Qt.Key_Plus 더하기 키
Qt.Key_Comma 콤마 키
Qt.Key_Minus 빼기 키
Qt.Key_Period 마침표 키
Qt.Key_Slash 슬래시 키
Qt.Key_0 ~ Qt.Key_9 0 ~ 9 키
Qt.Key_Colon 콜론 키
Qt.Key_Semicolon 세미콜론 키
Qt.Key_Less Less 키
Qt.Key_Equal Equal 키
Qt.Key_Greater Greater 키
Qt.Key_Question 물음표 키
Qt.Key_At At 키
Qt.Key_A ~ Qt.Key_Z A ~ Z 키
Qt.Key_BracketLeft 왼쪽 대괄호 키
Qt.Key_Backslash 백슬래시 키
Qt.Key_BracketRight 오른쪽 대괄호 키
Qt.Key_AsciiCircum Ascii Circum 키
Qt.Key_Underscore 언더스코어 키
Qt.Key_QuoteLeft 왼쪽 따옴표 키
Qt.Key_BraceLeft 왼쪽 중괄호 키
Qt.Key_Bar 바 키
Qt.Key_BraceRight 오른쪽 중괄호 키

* 이외 기타 key는 아래 가이드 참고

  • 참고 사이트 :
    https://doc.qt.io/qtforpython-6/PySide6/QtCore/Qt.html#PySide6.QtCore.Qt.Key

key 이벤트 연결 예제소스

  • keyPressEvent 이벤트 핸들러에 사용자 정의 함수를 오버라이드 한다.
    self.ui.grd_list.keyPressEvent = self.e_keyPress
  • 여러개의 키를 조합하여 사용하는 방법
    • event.modifiers() 함수는 직전에 입력한 키를 저장한다.
      if event.key() == Qt.Key_Return and event.modifiers() & Qt.ControlModifier:
  • 참고 사이트
    https://doc.qt.io/qtforpython-6/PySide6/Qt3DInput/QKeyEvent.html#PySide6.Qt3DInput.QKeyEvent.modifiers
from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        #==================  Signal  ====================
        self.ui.grd_list.keyPressEvent = self.e_keyPress

    #==================  Slot ====================
    def e_keyPress(self, event):
        if event.key() == Qt.Key_Return and event.modifiers() & Qt.ControlModifier:
            # 엔터키와 Ctrl키 조합하여 눌렀을 때 처리할 작업

if __name__ == "__main__":
    app = QApplication(sys.argv) 
    window = MainWindow()        
    window.show()                 
    sys.exit(app.exec())         

'Python' 카테고리의 다른 글

pyinstaller 사용시 hidden import not found 에러, collect_all 함수  (0) 2024.12.23
PySide6, Qt Designer 설치  (0) 2024.12.23
Pyside6 QListWidget multiline 입력창 구현  (0) 2024.12.23
'Python' 카테고리의 다른 글
  • pyinstaller 사용시 hidden import not found 에러, collect_all 함수
  • PySide6, Qt Designer 설치
  • Pyside6 QListWidget multiline 입력창 구현
red9isu
red9isu
  • red9isu
    기록
    red9isu
  • 전체
    오늘
    어제
    • 전체보기 (26)
      • JAVA (3)
      • React (2)
      • Python (4)
      • SQL (2)
      • Cloud (1)
      • Linux (2)
      • CI+CD (2)
      • 자격증 (10)
        • AICE (8)
        • SQLD+P (1)
        • 리눅스마스터 (1)
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
red9isu
Pyside6 Qwidget keyEvent 설정
상단으로

티스토리툴바