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

파이썬 Tkinter에서 마우스 커서 모양 변경하기

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를 만들 수 있습니다.