본문 바로가기
[ CODING STUDY ]/》파이썬 공부

파이썬 21장(tkinter_05, 키 입력, bind(), 키 입력함수, key, 마우스 클릭)

by MRG 2020. 12. 14.
728x90
반응형

▣ 안녕하세요^^
오늘은 키를 입력받고 이미지를 움직여보는 걸 해보도록 하겠습니다.

 

▣ 먼저 키를 입력받으려면 bind() 함수를 사용해야 합니다. 
bind 함수에 첫번째 매개변수 값은 이벤트 값을 넣어주고 두 번째에는 키를 입력하면 
호출하고 값을 전달해줄 함수를 지정해줍니다.


▣ 이벤트에 종류로는 주석에 나와있는것 처럼
"<KeyPress>" , "<Key>"는 키를 입력할 때 함수에 매개변수 값이 전달이 되고 
"<KeyRelease>" 키 입력 후 땐 후에 값을 전달
"<Motion>" 마우스 포인터를 움직일 때 전달
"<ButtonPress>", "<Button>" 각각 마우스를 클릭하면 전달이 됩니다. 


▣ 저희는 "<Key>"키를 입력하면 전달하게 하게 지정하고 
KeyClick함수를 호출하게 합니다. 
입력하면 KeyClick(e) - e에 값이 전달되고
전역 변수에 접근하여 
e.keycode에 접근하여 그 값을 key에 전달하고 
출력해보면 이렇게 키 값이 전달되는 걸 확인할 수 있습니다.
그럼 이 숫자 값을 이용해서 값이 몇이면 이동해라라고 만들어주면 되겠지만,
다른 방법도 존재합니다.

 

▣ e.keysym으로 접근하게 되면 눌러진 키에 이름이 대입되는 걸 확인할 수 있습니다.
그럼 방향키를 누르면 그 값으로 이름이 대입되는 걸 확인할 수 있습니다.
그럼 이제 이 값을 이용해서 캔버스에 이미지를 넣어서 그 이미지를 움직이게 코드를 진행해보겠습니다.

 

▣ 먼저 전역 변수로 Posx, Posx 포지션에 x, y값을 지정해줍니다. 
그리고 함수를 하나 선언하여 
key 값이 Up이면 Posy - 10이 되게 합니다.
왜냐 x0, y0에 값은 화면에 오른쪽 구석이기 때문입니다. 
그렇게 각각 키값을 지정하고 마지막 중요한 코드가 있습니다.


▣ cavas.coords() 함수는 해동 태그에 이미지에 위치를 이동하는 코드입니다. 
태그는 쉽게 우리가 페이스북이나 인스타그램처럼 
그 이미지에 꼬리표를 지정한다고 생각하시면 됩니다. 

 

▣ 그리고 이렇게 canvas.create_image(tag="Rabbit") 태그를 지정한 걸 확인할 수 있습니다.
그리고 tk.bind()로 함수를 호출하고 실행하면

 

▣ 이렇게 이미지가 키를 누를 때마다 움직이는 걸 확인할 수 있습니다.
이미지가 너무 크네요 ^^;;;


▣ 오늘은 이렇게 간단하게 이미지를 움직이는 코드를 진행했습니다. 
이제 오늘 배운 내용을 이용해서 활용해보시고,
절대 제가 준 코드가 정답이 아님을 기억하시고 스스로 코드를 만들어보세요.
질문 있으시면 댓글 남겨주세요.


▣ 포기하지 마세요!!! 저도 했습니다. 파이팅!!!

728x90
반응형

댓글