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

Tkinter Spinbox 위젯에 기본값 설정하는 방법

Tkinter의 Spinbox(스핀박스) 위젯은 Entry 위젯에 값 증가·감소 버튼을 추가해 주는 요소로, 애플리케이션에서 숫자 데이터를 다룰 때 매우 유용하게 활용됩니다. 스핀박스는 Spinbox(arguments) 형태로 간단히 생성할 수 있으며, StringVar() 객체를 사용해 원하는 기본값(default value)을 지정할 수 있습니다.

Spinbox 기본값이 중요한 이유

위젯의 기본값은 단순히 초기 화면에 표시되는 값 이상의 의미를 가집니다. 사용자가 입력하기 전에 미리 정의된 값을 보여줌으로써 입력 범위를 명확히 안내하고, 잘못된 값이 들어오는 것을 방지하는 역할도 합니다. 특히 숫자 데이터를 반복적으로 입력해야 하는 폼이나 설정 화면에서 기본값 설정은 사용자 경험을 크게 향상시킵니다.

기본값 설정 예제 코드

다음 예제에서는 StringVar() 객체를 생성한 뒤 set() 메서드로 기본값을 "1.0"으로 지정하고, textvariable 옵션을 통해 스핀박스와 연결합니다.

# Tkinter 라이브러리 임포트
from tkinter import *
from tkinter import ttk

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

# 프레임(윈도우) 크기 설정
win.geometry("750x250")

# Spinbox의 기본값 설정
my_var = StringVar(win)
my_var.set("1.0")

# 스핀박스 생성
spinbox = ttk.Spinbox(win, from_=0.5, to=10.0, increment=0.01, textvariable=my_var)
spinbox.pack(ipadx=20, pady=20)

win.mainloop()

주요 코드 설명

  • StringVar(win): Tkinter에서 문자열 변수를 관리하는 객체로, 위젯과 값을 양방향으로 연결합니다.
  • my_var.set("1.0"): 스핀박스에 표시될 초기값, 즉 기본값을 "1.0"으로 지정합니다.
  • from_=0.5, to=10.0: 스핀박스에서 선택 가능한 최솟값과 최댓값의 범위를 정의합니다.
  • increment=0.01: 버튼을 클릭할 때마다 값이 0.01씩 증가하거나 감소하도록 설정합니다.

실행 결과

위 코드를 실행하면 너비 750픽셀, 높이 250픽셀의 창이 나타나며, 그 안에 기본값이 1.0으로 설정된 스핀박스가 표시됩니다. 상하 화살표 버튼을 클릭하면 값이 0.01 단위로 조정되며, 최소 0.5부터 최대 10.0까지의 범위 내에서만 값이 변경됩니다.