• 티스토리 홈
  • 프로필사진
    소쩍소쩍이
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
소쩍소쩍이
  • 프로필사진
    소쩍소쩍이
    • 분류 전체보기 (51) N
      • 파이썬 (18)
        • 문제 및 예제 (8)
      • PySide6 (15) N
        • Signal & Slot (6)
        • Layout (8)
        • Model & View (1) N
      • 리눅스 (5)
      • 아두이노 (0)
      • 일지 (11)
  • GitHub
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • Signal & Slot 개념
      2026년 05월 26일
      • 소쩍소쩍이
      • 작성자
      • 2026.05.26.:41

      PySide6 Signal / Slot 정리

      Qt에서는 이벤트 처리를 Signal과 Slot 구조로 동작한다.

      버튼 클릭, 텍스트 입력, 체크박스 선택 같은 이벤트가 발생하면 Signal이 전달되고,
      연결된 Slot 함수가 실행된다.


      Signal

      Signal은 어떤 일이 발생했다는 것을 알려주는 신호

      주로 클래스 내부에서 정의되며 특정 이벤트가 발생했을 때 자동으로 전달된다.

      Signal은 함수처럼 보이지만 직접 실행되는 것이 아니라 연결된 Slot을 호출한다.

      대표적인 Signal 예시

      clicked → 버튼 클릭 시 발생
      textChanged → 텍스트가 변경될 때 발생
      currentChanged → 탭이나 인덱스 변경 시 발생

      예를 들어 버튼을 클릭하면 clicked Signal이 발생한다.


      Slot

      Slot은 Signal이 발생했을 때 실행되는 함수

      즉 Signal이 발생하면 어떤 행동을 할지 정의해 놓은 함수이다.

      PySide6에서는 특별한 문법 없이 일반 Python 함수도 Slot처럼 사용할 수 있다.

      def button_clicked():
          print("버튼 클릭!")

      위 함수는 버튼 클릭 Signal이 연결되면 Slot처럼 동작한다.


      connect()

      connect()는 Signal과 Slot을 연결하는 메서드

      Signal이 발생했을 때 어떤 함수를 실행할지 연결한다.

      button.clicked.connect(button_clicked)
      주의 사항

      connect() 안에는 button_clicked()처럼 괄호를 붙이지 않는다.
      괄호를 붙이면 버튼 클릭 전에 함수가 먼저 실행될 수 있다.

      Signal / Slot 예제

      import sys
      from PySide6.QtWidgets import (
          QApplication,
          QPushButton
      )
      
      # 버튼 클릭 시 실행될 함수(Slot)
      def button_clicked():
          print("버튼을 클릭하셨네요!")
      
      # QApplication 객체 생성
      app = QApplication(sys.argv)
      
      # 버튼 생성
      button = QPushButton("버튼을 클릭하세요")
      
      # Signal(clicked)과 Slot(button_clicked) 연결
      button.clicked.connect(button_clicked)
      
      # 버튼 화면 출력
      button.show()
      
      # 이벤트 루프 실행
      sys.exit(app.exec())

      위 코드를 실행하면 버튼이 생성되고 버튼을 클릭할 때마다 콘솔에 메시지가 출력된다.


      동작 흐름

      1. 사용자가 버튼 클릭
      ↓
      2. clicked Signal 발생
      ↓
      3. connect()로 연결된 Slot 함수 실행
      ↓
      4. button_clicked() 함수 실행

      자주 사용하는 Signal

      위젯 Signal 설명
      QPushButton clicked 버튼 클릭 시 발생
      QLineEdit textChanged 텍스트 변경 시 발생
      QTabWidget currentChanged 탭 변경 시 발생
      정리

      Signal → 이벤트 발생 알림
      Slot → 이벤트 발생 시 실행될 함수
      connect() → Signal과 Slot 연결

      'PySide6 > Signal & Slot' 카테고리의 다른 글

      다중 시그널 / 단일 슬롯  (0) 2026.05.26
      단일 시그널 / 다중 슬롯  (0) 2026.05.26
      사용자 정의 시그널  (0) 2026.05.26
      QSlider 값 전달  (0) 2026.05.26
      Data(값) 전달  (0) 2026.05.26
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바