Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter에서 버튼 해제(ButtonRelease) 이벤트 감지하는 방법

Tkinter에서 이벤트는 일반적으로 버튼 클릭이나 키 입력을 통해 발생합니다. 사용자가 지정된 키를 누르거나 지정된 버튼을 클릭할 때마다 해당 이벤트가 실행되며, 콜백 함수에 버튼이나 키를 바인딩(bind)하여 이벤트를 처리할 수 있습니다.

버튼 해제 이벤트 감지하기

마우스 버튼을 놓았을 때(release) 특정 이벤트를 발생시켜야 하는 상황을 생각해 보겠습니다. 이 경우 bind() 메서드에 <ButtonRelease> 매개변수를 전달하면 됩니다. 바인딩 형식은 다음과 같습니다.

bind(<ButtonRelease>, callback)

여기서 <ButtonPress-1>은 마우스 왼쪽 버튼을 누르는 순간을, <ButtonRelease-1>은 마우스 왼쪽 버튼을 놓는 순간을 의미합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *

# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x350")

# 마우스 버튼을 눌렀을 때 실행할 함수 정의
def on_click(event):
    label["text"] = "Hello, There!"

# 마우스 버튼을 놓았을 때 실행할 함수 정의
def on_release(event):
    label["text"] = "Button Released!"

# Label 위젯 생성
label = Label(win, text="Click anywhere..", font=('Calibri 18 bold'))
label.pack(pady=60)

# 마우스 왼쪽 버튼 누름/해제 이벤트 바인딩
win.bind("<ButtonPress-1>", on_click)
win.bind("<ButtonRelease-1>", on_release)

win.mainloop()

실행 결과

위 코드를 실행하면 레이블 위젯이 포함된 창이 나타납니다.

Tkinter에서 버튼 해제(ButtonRelease) 이벤트 감지하는 방법

이제 창의 아무 곳이나 클릭해 보면 화면에 메시지가 표시되고, 마우스 버튼을 놓는 순간 메시지가 업데이트됩니다.

Tkinter에서 버튼 해제(ButtonRelease) 이벤트 감지하는 방법

마우스 버튼을 놓으면 아래와 같은 메시지가 화면에 출력됩니다.

Tkinter에서 버튼 해제(ButtonRelease) 이벤트 감지하는 방법

정리

Tkinter에서 버튼이 해제되는 시점을 알아내려면 bind() 메서드에 <ButtonRelease-N> 이벤트를 바인딩하면 됩니다. 여기서 N은 마우스 버튼 번호(왼쪽: 1, 가운데: 2, 오른쪽: 3)를 나타냅니다. 이 방식을 활용하면 드래그 앤 드롭, 그리기 도구 등 버튼을 누르고 있는 동안의 동작과 놓는 순간의 동작을 구분해야 하는 다양한 애플리케이션을 손쉽게 구현할 수 있습니다.