- PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램
- 1. PyQt5 소개 (Introduction)
- 2. PyQt5 설치 (Installation)
- 3. PyQt5 기초 (Basics)
- 4. PyQt5 레이아웃 (Layout)
- 5. PyQt5 위젯 (Widget)
- QPushButton
- QLabel
- QCheckBox
- QRadioButton
- QComboBox
- QLineEdit
- QLineEdit (Advanced)
- QProgressBar
- QSlider & QDial
- QSplitter
- QGroupBox
- QTabWidget
- QTabWidget (Advanced)
- QPixmap
- QCalendarWidget
- QSpinBox
- QDoubleSpinBox
- QDateEdit
- QTimeEdit
- QDateTimeEdit
- QTextBrowser
- QTextBrowser (Advanced)
- QTextEdit
- QTableWidget
- QTableWidget (Advanced)
- 6. PyQt5 다이얼로그 (Dialog)
- 7. PyQt5 시그널과 슬롯 (Signal&Slot)
- 8. PyQt5 그림 그리기 (Updated)
- 9. PyQt5 실행파일 만들기 (PyInstaller)
- 10. PyQt5 프로그램 예제 (Updated)
- ▷ PDF ebook
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
이벤트 핸들러 재구성하기¶
keyPressEvent 이벤트 핸들러를 수정해서, 특정 키를 눌렀을 때 위젯을 종료하거나 최대화, 보통 크기로 조절하는 기능을 구현해보겠습니다.
아래와 같이 자주 쓰이는 이벤트 핸들러는 이미 만들어져 있는 경우가 많습니다.
이벤트 핸들러 |
설명 |
---|---|
keyPressEvent |
키보드를 눌렀을 때 동작합니다. |
keyReleaseEvent |
키보드를 눌렀다가 뗄 때 동작합니다. |
mouseDoubleClickEvent |
마우스를 더블클릭할 때 동작합니다. |
mouseMoveEvent |
마우스를 움직일 때 동작합니다. |
mousePressEvent |
마우스를 누를 때 동작합니다. |
mouseReleaseEvent |
마우스를 눌렀다가 뗄 때 동작합니다. |
moveEvent |
위젯이 이동할 때 동작합니다. |
resizeEvent |
위젯의 크기를 변경할 때 동작합니다. |
예제¶
## Ex 7-3. 이벤트 핸들러 재구성하기.
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Reimplementing event handler')
self.setGeometry(300, 300, 300, 200)
self.show()
def keyPressEvent(self, e):
if e.key() == Qt.Key_Escape:
self.close()
elif e.key() == Qt.Key_F:
self.showFullScreen()
elif e.key() == Qt.Key_N:
self.showNormal()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
‘esc’, ‘F’, ‘N’ 키를 클릭하면 창이 종료되거나 최대화, 보통 크기가 되도록 이벤트 핸들러를 재구성했습니다.
설명¶
def keyPressEvent(self, e):
if e.key() == Qt.Key_Escape:
self.close()
elif e.key() == Qt.Key_F:
self.showFullScreen()
elif e.key() == Qt.Key_N:
self.showNormal()
keyPressEvent 이벤트 핸들러는 키보드의 이벤트를 입력으로 받습니다.
e.key()는 어떤 키를 누르거나 뗐는지를 반환합니다.
‘esc’ 키를 눌렀다면, self.close()를 통해 위젯이 종료됩니다.
‘F’ 키 또는 ‘N’ 키를 눌렀다면, 위젯의 크기가 최대화되거나 보통 크기가 됩니다.
이전글/다음글
이전글 : 이벤트 핸들러 만들기
다음글 : 이벤트 핸들러 재구성하기2