Tkinter의 Spinbox(스핀박스) 위젯에 기본 문자열 값을 설정하려면 set 메서드를 사용해야 합니다. 이번 글에서는 문자열 값 목록으로 스핀박스를 생성한 뒤, 원하는 문자열을 기본값으로 지정하는 방법을 예제와 함께 자세히 살펴보겠습니다.
구현 단계
tkinter 라이브러리를 임포트하고 tkinter 프레임의 인스턴스를 생성합니다.
geometry 메서드를 사용해 프레임의 크기를 설정합니다.
문자열 목록을 만들어 data 변수에 저장합니다.
StringVar() 생성자를 호출하여 StringVar 객체를 생성합니다. 이 객체는 위젯의 값을 손쉽게 관리할 수 있게 해주며, 여기서는 Spinbox의 값을 관리하는 데 사용됩니다. 매개변수를 전달하지 않으면 기본적으로 root 윈도우에 연결됩니다.
스핀박스를 생성하고 data 목록을 values 옵션에 전달하여 선택 가능한 값을 설정합니다.
StringVar 객체를 스핀박스의 textvariable 옵션에 할당합니다. textvariable을 사용하면 위젯에 표시되는 텍스트를 간편하게 읽고 수정할 수 있습니다.
set 메서드를 사용해 스핀박스의 기본값을 지정합니다. 여기서는 data 목록에서 'Truck' 값을 선택해 기본값으로 설정했습니다. 즉, var.set('Truck')과 같이 직접 문자열을 지정할 수도 있고, 인덱스를 활용해 var.set(data[2]) 형태로 작성할 수도 있습니다.
마지막으로 애플리케이션 창의 mainloop를 실행하여 GUI를 화면에 표시합니다.
예제 코드
from tkinter import *
win = Tk()
win.geometry('700x350')
win.title('Spinbox')
data = ['Car', 'Bus', 'Truck', 'Bike', 'Airplane']
var = StringVar(win)
my_spinbox = Spinbox(win, values=data, textvariable=var, width=20, font="Calibri, 12")
my_spinbox.pack(padx=20, pady=20)
var.set('Truck')
win.mainloop()
실행 결과
위 코드를 실행하면 다음과 같이 스핀박스에 'Truck'이 기본값으로 표시되는 것을 확인할 수 있습니다.

이처럼 StringVar와 set 메서드를 함께 활용하면 스핀박스뿐만 아니라 Entry, Label 등 다양한 Tkinter 위젯의 초기값과 표시 텍스트를 유연하게 제어할 수 있습니다.