Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

DevStudy

PyQt5 본문

기타

PyQt5

DevStudy 2022. 1. 15. 21:30

창 닫기

 

 

 

창을 닫는 가장 간단한 방법은 타이틀바의 오른쪽 (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)입니다.

 
 

결과

 

 

'기타' 카테고리의 다른 글

PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15
PyQt5  (0) 2022.01.15