- 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)