[PyQt5] signal과 slot

여지윤·2024년 10월 3일

PyQt

목록 보기
2/2

시그널과 슬롯은 이벤트 처리와 통신 메커니즘을 제공하는 PyQt의 핵심 개념이다.

시그널(signal)

  • 객체에서의 어떤 이벤트나 상태 변경
  • 각 위젯은 여러 시그널을 가지고 있다.
  • ex) 체크박스 위젯에 대하여 이를 클릭한 상태를 파악하는 것이 시그널

슬롯(slot)

  • 시그널을 처리하는 함수나 메서드

연결(connect)

  • 시그널과 슬롯을 연결하는 메서드
  • 시그널이 발생하면 연결된 슬롯 호출

example

import sys

from PyQt5.QtWidgets import *

class MainApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.statusBar().showMessage("")

        self.btn = QPushButton('Click Me', self)
        self.btn.move(20, 20)

        self.btn.clicked.connect(self.onClick)

        self.setWindowTitle('Signal Slot Study')
        self.setGeometry(300, 300, 300, 200)
        self.show()

    def onClick(self):
        self.statusBar().showMessage('Clicked!')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MainApp()
    sys.exit(app.exec_())

버튼을 클릭하면 스테이터스 바에 메시지를 나타내는 단순한 코드

 self.btn.clicked.connect(self.onClick)
  • btn이라는 QPushButton 객체의 clicked 시그널 발생
  • connect를 통하여 연결된 onClick 슬롯 호출
profile
KNU CSE 20

0개의 댓글