- 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
창 닫기¶
창을 닫는 가장 간단한 방법은 타이틀바의 오른쪽 (Windows) 또는 왼쪽 (macOS) ‘X’ 버튼을 클릭하는 것입니다.
이번에는 프로그래밍을 통해 창을 닫는 법을 알아보겠습니다.
시그널 (Signal)과 슬롯 (Slot)에 대해서도 간단하게 다뤄보겠습니다.
예제¶
## Ex 3-3. 창 닫기.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import QCoreApplication
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn = QPushButton('Quit', self)
btn.move(50, 50)
btn.resize(btn.sizeHint())
btn.clicked.connect(QCoreApplication.instance().quit)
self.setWindowTitle('Quit Button')
self.setGeometry(300, 300, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
‘Quit’ 버튼을 만들었습니다.
이제 이 버튼을 클릭하면 어플리케이션이 종료됩니다.
설명¶
from PyQt5.QtCore import QCoreApplication
QtCore 모듈의 QCoreApplication 클래스를 불러옵니다.
btn = QPushButton('Quit', self)
푸시버튼을 하나 만듭니다. 이 버튼 (btn)은 QPushButton 클래스의 인스턴스입니다.
생성자 (QPushButton())의 첫번째 파라미터에는 버튼에 표시될 텍스트를 입력하고, 두번째 파라미터에는 버튼이 위치할 부모 위젯을 입력합니다.
푸시버튼 위젯에 대한 자세한 설명은 QPushButton 페이지 설명을 참고하세요.
btn.clicked.connect(QCoreApplication.instance().quit)
PyQt5에서의 이벤트 처리는 시그널과 슬롯 메커니즘으로 이루어집니다.
버튼 (btn)을 클릭하면 ‘clicked’ 시그널이 만들어집니다.
instance() 메서드는 현재 인스턴스를 반환합니다.
‘clicked’ 시그널은 어플리케이션을 종료하는 quit() 메서드에 연결됩니다.
이렇게 발신자 (Sender)와 수신자 (Receiver), 두 객체 간에 커뮤니케이션이 이루어집니다. 이 예제에서 발신자는 푸시버튼 (btn)이고, 수신자는 어플리케이션 객체 (app)입니다.
이전글/다음글
이전글 : 어플리케이션 아이콘 넣기
다음글 : 툴팁 나타내기