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

Tkinter에서 마우스 호버로 배경색을 변경하는 버튼 만드는 방법

Tkinter의 버튼(Button) 위젯은 애플리케이션에서 다양한 작업을 구성하고 수행할 수 있도록 여러 내장 기능을 제공합니다. 애플리케이션에서 특정 이벤트를 실행하려면 bind("<Button>", callback) 메서드를 사용하여 함수나 이벤트를 버튼에 연결(바인딩)할 수 있습니다.

버튼에 호버(hover) 효과를 추가하려면 bind 함수에서 <Enter><Leave> 매개변수를 활용하면 됩니다. <Enter>는 마우스 커서가 위젯 위로 진입할 때, <Leave>는 커서가 위젯을 벗어날 때 각각 지정된 콜백 함수를 호출합니다.

예제 코드

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

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

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

def change_bgcolor(e):
    win.config(background="green3")

def change_fgcolor(e):
    win.config(background="white")

# 이벤트를 트리거할 버튼 추가
b1 = Button(win, text="Hover on Me", font=('Georgia 16'))
b1.pack(pady=60, anchor=CENTER)

# 이벤트 바인딩
for b in [b1]:
    b.bind("", change_bgcolor)
    b.bind("", change_fgcolor)

win.mainloop()

실행 결과

위 코드를 실행하면 하나의 버튼이 포함된 창이 화면에 나타납니다.

마우스 커서를 버튼 위에 올리면(<Enter> 이벤트 발생), 메인 윈도우의 배경색이 초록색(green3)으로 변경됩니다.

반대로 마우스 커서가 버튼에서 벗어나면(<Leave> 이벤트 발생), 배경색이 다시 흰색으로 돌아갑니다.

핵심 정리

이 방식은 단순히 버튼 자체의 색상뿐 아니라 윈도우 전체 배경색을 동적으로 변경할 수 있다는 점에서 유용합니다. <Enter>와 <Leave> 이벤트를 조합하면 마우스 오버 시 시각적인 피드백을 손쉽게 구현할 수 있으며, 이를 응용해 툴팁 표시, 스타일 강조 등 다양한 인터랙티브 UI 효과를 만들 수 있습니다.