728x90
반응형
SMALL
tkinter 를 이용한 마우스 이벤트는
window에 bind 함수를 이용하여 마우스 이벤트를 각각 연결시킨다.
이때 bind() 함수는 다음과 같이 두 개의 이자를 가져야 한다.
- bind("이벤트명",연결함수) #이벤트 연결을 위한 가장 중요한 함수!!!!!
이벤트 종류는 다음과 같다.
<Button-1> : 마우스 왼쪽 버튼 클릭
<Button-2> : 마우스 중간 버튼 클릭
<Button-3> : 마우스 오른쪽 버튼 클릭
<Button-4> : 마우스 휠을 스크롤바에서 위로 올릴 때(scroll up event)
<Button-5> : 마우스 휠을 스크롤바에서 아래로 내릴 때(scroll down event)
<ButtonPress> : 아무 마우스 버튼이라도 눌리면 호출 된다. 휠까지도
<Double-Button-1> : 마우스 왼쪽 버튼 더블 클릭
<Double-Button-2> : 마우스 중간 버튼 더블 클릭
<Double-Button-3> : 마우스 오른쪽 버튼 더블 클릭
<Return> : 엔터가 눌러짐
<Key> : 키가 눌러짐
<Enter> : 마우스 포인터가 위젯에 들어올 때
<Leave> : 마우스 포인터가 위젯을 떠날때
<Configure> : 위젯 사이즈에 변화가 있을때
이중에서 마우스와 관련 된 이벤트를 적용한 코드 예제는 아래와 같다.
from tkinter import *
class MouseEvent:
def __init__(self):
window = Tk()
window.title("마우스 이벤트")
window.geometry("640x480")
self.canvas=Canvas(window, bg ="white")
self.canvas.pack(expand=True, fill=BOTH)
window.bind("<Button-1>",self.MouseClickEvent)
window.bind('<Double-1>', self.MouseDoubleClickEvent)
window.bind('<B1-Motion>', self.MouseMotionEvent)
self.mousestr = "Mouse: "
self.mouse_id = self.canvas.create_text(320,240,font="Times 15 italic bold",text=self.mousestr)
self.canvas.create_text(320,360,font="Times 15 italic bold",text="Mouse Event Example")
while True:
#
self.canvas.itemconfigure(self.mouse_id, text=self.mousestr)
#
window.after(33)
window.update()
def MouseClickEvent(self, event):
self.mousestr = "Mouse: " + str(event.x) + ", " + str(event.y) + "에서 마우스 클릭 이벤트 발생"
def MouseDoubleClickEvent(self, event):
self.mousestr = "Mouse: " + str(event.x) + ", " + str(event.y) + "에서 마우스 더블 클릭 이벤트 발생"
def MouseMotionEvent(self, event):
self.mousestr = "Mouse: " + str(event.x) + ", " + str(event.y) + "에서 마우스 모션 이벤트 발생"
MouseEvent()
728x90
반응형
LIST
'IT > 파이썬(Python)' 카테고리의 다른 글
파이썬 tkinter 게임 GUI 화면 장면 전환 스테이지 만들기 pack, unpack, pack_forget, protocol, destroy 함수 (0) | 2022.04.04 |
---|---|
파이썬 tkinter canvas GUI 메뉴 만들기 코드 (0) | 2022.04.04 |
파이썬 움직이는 gif 이미지 읽어오기 (0) | 2022.04.04 |
파이썬 tkinter 키보드 이벤트 이미지 애니메이션 bind (0) | 2022.04.04 |
파이썬 키보드 이벤트 (tkinter, bind, event.keycode) 게임 (0) | 2022.03.29 |