반응형
이벤트가 발생했을 때, 이벤트를 처리하기 위해 호출되는 함수를 콜백 함수라고 합니다.
터틀 스크린에서 마우스를 클릭해서 이벤트가 발생했을 때 onscreenclick() 함수로 콜백 함수를 등록할 수 있습니다.
def draw_position(x, y):
…
s = turtle.screen()
s.onscreenclick(draw_position)
s.listen()
콜백 함수를 사용하지 않고 함수를 직접 호출하여 실행할 수도 있습니다.
s.onscreenclick(s.goto)
s.listen()
onscrrenclick 함수의 인수를 통해 마우스를 클릭한 버튼에 따라 서로 다른 콜백 함수를 호출할 수 있습니다. Onscreenclick 함수의 두 번째 인수는 마우스 버튼을 구분하여 처리할 수 있습니다.
1은 왼쪽 버튼, 2는 가운데 버튼, 3은 오른쪽 버튼을 의미합니다.
s = turtle.Screen()
s.onscreenclick(func_1, 1) # 마우스 왼쪽 버튼을 클릭하면 func_1 함수를 처리
s.onscreenclick(func_3, 3) # 마우스 오른쪽 버튼을 클릭하면 func_1 함수를 처리
s.listen()
예제
import turtle as t
def print_xy(x, y):
t.goto(x, y)
t.stamp() # 도장을 찍습니다.
t.write("x:%d, y:%d"%(x,y))
def screen_clear(x, y):
t.goto(x,y)
t.clear()
t.shape("turtle")
t.setup(500, 500) # 터틀 스크린 크기를 500x500으로 설정합니다.
s = t.Screen()
t.penup()
s.onscreenclick(print_xy, 1) # 마우스 왼쪽 버튼을 누르면 처리할 콜백 함수 등록
s.onscreenclick(screen_clear, 3) # 마우스 오른쪽 버튼
s.listen() # 사용자 입력을 위한 포커스 처리 및 이벤트 발생 확인
(Output)
반응형
'Python' 카테고리의 다른 글
(파이썬) 별 그리기 (0) | 2022.10.08 |
---|---|
(파이썬) 터틀 그래픽 삼각형 그리기 (0) | 2022.10.06 |
(파이썬) 터틀 그래픽: 별 (0) | 2022.10.03 |
(파이썬) 터틀 그래픽 Turtle Graphics: 원 그리기 (0) | 2022.10.02 |
(파이썬) 터틀 그래픽 Turtle Graphics 사각형 그리기 (0) | 2022.10.02 |