본문 바로가기
Python Library/PyQt

[PyQt] 창 닫기 버튼

by goatlab 2022. 5. 20.
728x90
반응형
SMALL

창 닫기 버튼

 

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_())
코드 설명
btn = QPushButton('Quit', self) - 푸시 버튼 생성

- 버튼 (btn)은 QPushButton 클래스의 인스턴스

- 생성자 QPushButton()의 첫 번째 변수에는 버튼에 표시될 텍스트를 입력하고, 두 번째 변수에는 버튼이 위치할 부모 위젯을 입력
btn.clicked.connect(QCoreApplication.instance().quit) - PyQt5에서의 이벤트 처리는 시그널과 슬롯 메커니즘으로 이루어짐

- 버튼 (btn)을 클릭하면 'clicked' 시그널이 만들어짐


- instance() 메서드는 현재 인스턴스를 반환


- 'clicked' 시그널은 어플리케이션을 종료하는 quit() 메서드에 연결


- 발신자 (Sender)와 수신자 (Receiver), 두 객체 간에 커뮤니케이션이 이루어짐

- 발신자는 푸시버튼 (btn)이고, 수신자는 어플리케이션 객체 (app)

728x90
반응형
LIST

'Python Library > PyQt' 카테고리의 다른 글

[PyQt] 상태바  (0) 2022.05.20
[PyQt] 툴팁  (0) 2022.05.20
[PyQt] 아이콘 삽입  (0) 2022.05.20
[PyQt] 창 띄우기  (0) 2022.05.20
PyQt  (0) 2022.05.20