컴퓨터/Python 코딩
3. Signal과 Slot
아브아카
2017. 10. 3. 09:15
Qt에서는 Signal과 Slot 이라고 하는데 자바나 다른 언어들에서는 이벤트와 이벤트 핸들러라는 용어를 사용한다.
(사실 아직까지는 무슨 차이인줄은 모르겠음.)
앞글에서 언급한 Qt Designer로 만들어둔 GUI 요소들에서 Signal(이벤트)가 발생시에 미리 동작할 Slot(이벤트 핸들러)로 연결시켜 주는 것이 핵심인 듯. 가장 기본적인 Signal과 Slot 연결방식은 아래와 같다.
(GUI 오브젝트).(Signal 함수).connect((slot 함수))
실제로 많이 쓰이는 버튼을 만들어서 버튼을 클릭했을때 동작하는 예제를 보면 다음과 같다.
위 예제는 pyside 예제를 그대로 가져온 것으로 Pyside2에서는 수정이 필요할 듯하나 signal과 slot을 이해하기에는 충분해보인다.
Click signal 뿐만 아니라 press, release signal에 대해서도 각각 Slot으로 연결시킨 내용이다.
추가로 좀더 다양한 signal slot 사용법이 있으나 아직은 공부중이라 나중에 더 필요한 내용은 추가할 듯하다.
참고 : http://pythoncentral.io/pyside-pyqt-tutorial-using-built-in-signals-and-slots/
http://zetcode.com/gui/pysidetutorial/eventsandsignals/