Tkinter의 Scale(스케일) 위젯은 애플리케이션 안에 시각적인 슬라이더를 만들어, 사용자가 눈금을 기준으로 특정 값을 손쉽게 선택할 수 있도록 해주는 도구입니다. Scale 객체를 사용하려면 먼저 Scale(root, **options) 형태의 생성자를 호출해야 하며, 이때 command, background, label, length, orient 등 다양한 속성과 옵션을 지정할 수 있습니다.
Scale 위젯은 슬라이더를 드래그하여 원하는 값을 선택하는 방식으로 동작합니다. 따라서 현재 선택된 스케일 값을 가져와 레이블(Label) 위젯에 실시간으로 표시할 수 있는데, 이때 값 조회에는 정수를 반환하는 get() 메서드를 사용합니다. Label 위젯은 문자열만 출력할 수 있으므로, 가져온 숫자 값은 문자열 타입 캐스팅(str 변환)을 거쳐야 정상적으로 표시됩니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 윈도우 인스턴스 생성
win = Tk()
win.geometry("700x350")
# 스케일 값을 읽어 레이블에 표시하는 함수
def sel():
selection = "현재 값: " + str(var.get())
label.config(text=selection)
# 스케일 위젯 생성
var = StringVar()
my_scale = Scale(win, variable=var, orient=HORIZONTAL, cursor="dot")
my_scale.pack(anchor=CENTER)
# 레이블 위젯 생성
label = Label(win, font='Helvetica 15 bold')
label.pack()
# 스케일 값을 가져오는 버튼 생성
button = Button(win, text="값 가져오기", command=sel)
button.pack()
win.mainloop()실행 결과
위 코드를 실행하면 0~100 범위의 값을 선택할 수 있는 가로형 스케일 슬라이더가 포함된 창이 나타납니다. 슬라이더를 움직여 값을 선택하면 그 값이 StringVar 변수에 저장되고, [값 가져오기] 버튼을 클릭하면 sel() 함수가 실행되어 현재 값이 레이블에 문자열로 출력됩니다.
이처럼 Scale 위젯의 get() 메서드와 Label 위젯을 조합하면, 사용자가 선택한 값을 즉각적으로 피드백해 주는 직관적인 UI를 간단하게 구현할 수 있습니다.
