본문 바로가기
Programming/Python

L2P 연습 : turtle.Screen.onclick() - 001

by The Programmer 2023. 8. 6.

# 드로잉 시간 지연 제거 두 메서드 포함,
# L2P 중급/고급 연습용 예제.
# 이벤트, 이벤트 핸들러 함수,
# 이벤트 핸들러 함수 등록 절차,
# 이벤트 발생 수신 대기/감시 메카니즘 이해,
# 메인 루프 구성법
# tracer()와 delay() 메서드 사이의 차이점.

import turtle

win1 = turtle.Screen()

win1.tracer(2, 50)
# 마름모꼴은 거의 생겨나지 않음.

t1 = turtle.Pen()

# win1.delay(0)
# 약간의 마름모꼴 생겨남.
# 너무 빠르게 연속으로 그릴 때만.

def setupWindow():
    win1.setup(600, 900)
   win1.title("Hello OnClick! ^.^;")

def box1(x, y):
    t1.pu()
    t1.goto(x, y)
    t1.pd()
    for _ in range(4):
        t1.fd(100)
        t1.rt(90)

def main():
    setupWindow()
    win1.onclick(box1)
    # 마우스 클릭 이벤트 핸들러 등록.
    # 클릭 좌표값이 리턴 데이터로 생성되고
    # 인자로 지정된 함수(box1)는 이 좌표값을
    # 수신 처리해야 한다.
    win1.listen()
    # 이벤트 수신 대기
    win1.mainloop()

main()

 

 

*     *     *

 

# 이하 참고용, 비교용 코드.

 

import turtle

win1 = turtle.Screen()
win1.setup(600, 900)    # 아마도 이 줄에서 오타가 생겼을 수도. assign 문장이 아니다.
win1.title("Hello OnClick! ^.^;")
win1.tracer(2, 50)

t1 = turtle.Pen()

def box1(x, y):
    t1.pu()
    t1.goto(x, y)
    t1.pd()
    for _ in range(4):
        t1.fd(100)
        t1.rt(90)

win1.onclick(box1)
win1.listen()
win1.mainloop()

 

 

# 즐거운 프로그래밍!

 

# ^.^;

 

 

 

'Programming > Python' 카테고리의 다른 글

Free IDE - Thonny  (0) 2024.09.08
turtle.pencolor() 함수  (0) 2023.12.10
[ L2P ] 재귀 : 다른 방식의 루프  (0) 2023.09.24
[ L2P ] random Module  (0) 2023.09.10
[ L2P ] OnKeyPress()  (0) 2023.08.20