- PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램
- 1. PyQt5 소개 (Introduction)
- 2. PyQt5 설치 (Installation)
- 3. PyQt5 기초 (Basics)
- 4. PyQt5 레이아웃 (Layout)
- 5. PyQt5 위젯 (Widget)
- 6. PyQt5 다이얼로그 (Dialog)
- 7. PyQt5 시그널과 슬롯 (Signal&Slot)
- 8. PyQt5 그림 그리기 (Updated)
- 9. PyQt5 실행파일 만들기 (PyInstaller)
- 10. PyQt5 프로그램 예제 (Updated)
- ▷ PDF & 예제 파일
- 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
이벤트 핸들러 만들기¶
PyQt에서 이벤트 (시그널) 처리를 할 때 사용되는 함수를 이벤트 핸들러 (슬롯)라고 합니다.
‘Big’, ‘Small’ 버튼을 클릭해서 시그널이 발생했을 때, 창의 크기가 바뀌도록 하는 함수를 정의해보겠습니다.
예제¶
## Ex 7-2. 이벤트 핸들러 만들기.
import sys
from PyQt5.QtWidgets import (QApplication, QWidget
, QLCDNumber, QDial, QPushButton, QVBoxLayout, QHBoxLayout)
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
lcd = QLCDNumber(self)
dial = QDial(self)
btn1 = QPushButton('Big', self)
btn2 = QPushButton('Small', self)
hbox = QHBoxLayout()
hbox.addWidget(btn1)
hbox.addWidget(btn2)
vbox = QVBoxLayout()
vbox.addWidget(lcd)
vbox.addWidget(dial)
vbox.addLayout(hbox)
self.setLayout(vbox)
dial.valueChanged.connect(lcd.display)
btn1.clicked.connect(self.resizeBig)
btn2.clicked.connect(self.resizeSmall)
self.setWindowTitle('Signal and Slot')
self.setGeometry(200, 200, 200, 250)
self.show()
def resizeBig(self):
self.resize(400, 500)
def resizeSmall(self):
self.resize(200, 250)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
‘Big’ 버튼과 ‘Small’ 버튼을 눌러서 창의 크기를 확대, 축소할 수 있습니다.
설명¶
btn1.clicked.connect(self.resizeBig)
btn2.clicked.connect(self.resizeSmall)
btn1과 btn2는 각각 resizeBig, resizeSmall 슬롯에 연결되어 있습니다.
def resizeBig(self):
self.resize(400, 500)
def resizeSmall(self):
self.resize(200, 250)
resizeBig() 메서드는 화면 크기를 가로 400px, 세로 500px로 확대, resizeSmall() 메서드는 화면 크기를 가로 200px, 세로 250px로 축소하는 기능을 가지게 됩니다.
이전글/다음글
이전글 : 연결하기
다음글 : 이벤트 핸들러 재구성하기
Show/Post Comments >