Tkinter는 파이썬에서 GUI 기반 애플리케이션을 개발할 때 가장 널리 사용되는 표준 라이브러리입니다. 다양한 함수와 메서드를 제공하여 애플리케이션 개발 과정에서 확장성과 여러 기능을 손쉽게 구현할 수 있습니다.
이 글에서는 Tkinter의 cursor 속성을 활용하여 버튼 위에 마우스를 올렸을 때(호버링) 마우스 커서 모양을 변경하는 방법을 알아보겠습니다. Tkinter의 버튼 라이브러리에는 다양한 커서 맵이 내장되어 있어, 사용자에게 여러 가지 시각적 효과를 제공할 수 있습니다.
라이브러리에서 제공하는 대표적인 커서 종류는 다음과 같습니다.
- arrow (화살표)
- circle (원)
- clock (시계)
- cross (십자)
- dotbox
- exchange
- fleur
- heart (하트)
- man (사람)
- mouse (마우스)
- pirate (해적)
- plus (플러스)
- shuttle (우주선)
- sizing (크기 조절)
- spider (거미)
- spraycan (스프레이)
- star (별)
- target (타겟)
- tcross
- trek
- watch (시계)
그럼 먼저 몇 개의 버튼을 만든 후, 이 커서들을 마우스 포인터에 하나씩 적용해 보겠습니다.
예제 코드
from tkinter import *
# 윈도우 또는 프레임 인스턴스 생성
win = Tk()
# 창 크기 설정
win.geometry("700x600")
win.resizable(0, 0)
win.config(cursor="fleur")
# 안내용 텍스트 라벨 생성
Label(win, text="각 버튼 위에 마우스를 올려보세요", font=('Poppins', 20)).pack(pady=20)
# cursor 속성을 적용한 버튼 생성
b1 = Button(win, text="Star", cursor="star")
b1.pack(pady=20)
b2 = Button(win, text="Arrow", cursor="arrow")
b2.pack(pady=20)
b3 = Button(win, text="Circle", cursor="circle")
b3.pack(pady=20)
b4 = Button(win, text="Clock", cursor="clock")
b4.pack(pady=20)
b5 = Button(win, text="Heart", cursor="heart")
b5.pack(pady=20)
b6 = Button(win, text="Man", cursor="man")
b6.pack(pady=20)
b7 = Button(win, text="Mouse", cursor="mouse")
b7.pack(pady=20)
# 윈도우 실행 유지
win.mainloop()
실행 결과
위 코드를 실행하면 서로 다른 마우스 포인터 모양이 적용된 여러 개의 버튼이 생성됩니다. 각 버튼 위에 마우스를 올리면 해당 버튼에 설정된 커서 모양으로 즉시 변경되는 것을 확인할 수 있습니다.
참고로 cursor 속성은 버튼뿐만 아니라 라벨, 프레임 등 Tkinter의 거의 모든 위젯에 적용할 수 있으므로, 상황에 맞게 활용하면 더욱 직관적인 UI를 만들 수 있습니다.