상위 목록: 하위 목록: 작성 날짜: 읽는 데 3 분 소요

Scale(수치 조정 바)

Scale을 이용하여 값을 설정하기 위한 수치 조정 바를 생성할 수 있습니다.



Scale 사용

import tkinter

window=tkinter.Tk()
window.title("YUN DAE HEE")
window.geometry("640x400+100+100")
window.resizable(False, False)

def select(self):
    value="값 : "+str(scale.get())
    label.config(text=value)

var=tkinter.IntVar()

scale=tkinter.Scale(window, variable=var, command=select, orient="horizontal", showvalue=False, tickinterval=50, to=500, length=300)
scale.pack()

label=tkinter.Label(window, text="값 : 0")
label.pack()

window.mainloop()


def select(self):
    value="값 : "+str(scale.get())
    label.config(text=value)

var=tkinter.IntVar()

scale=tkinter.Scale(window, variable=var, command=select, orient="horizontal", showvalue=False, tickinterval=50, to=500, length=300)
scale.pack()

label=tkinter.Label(window, text="값 : 0")
label.pack()

tkinter.Scale(윈도우 창, 매개변수1, 매개변수2, 매개변수3, ...)을 사용하여 해당 윈도우 창에 표시할 수치 조정 바의 속성을 설정할 수 있습니다.

매개변수를 사용하여 수치 조정 바의 속성을 설정합니다.

수치 조정 바를 생성 후, command 매개변수를 적용할 함수와 연결합니다.

command에 연결된 함수는 수치 조정 바의 값이 변경될 때마다 호출되며, 현재 값이 문자열 형태로 매개변수에 전달됩니다.

그러므로 연결할 함수는 매개변수를 하나 받도록 정의해야 하며, 예제의 select(self)에서 self에는 현재 값이 전달됩니다.

  • Tip : scale.get()는 현재 수치 조정 바에 표시된 값을 가져오며, var.get()은 var에 저장된 값을 가져옵니다.

  • Tip : scale.get()은 resolution이 정수일 경우 int 형식을, resolution이 소수(예: 0.5)일 경우 float 형식을 반환합니다. 단, command에 전달되는 값은 항상 문자열이므로 계산에 사용하려면 int() 또는 float()로 변환해야 합니다.

  • Tip : tkinter.ttk.Scale도 사용할 수 있지만, tickinterval, label, showvalue, resolution 등의 매개변수를 지원하지 않습니다.



Scale Method

이름 의미 설명
set() 값 변경 수치 조정 바의 값을 변경
get() 값 반환 수치 조정 바의 값을 반환



Scale Parameter

수치 조정 바 텍스트 설정

이름 의미 기본값 속성
label 수치 조정 바에 표시되는 문자 - 문자
showvalue 수치 조정 바에 값 표시 유/무 True Boolean


수치 조정 바 형태 설정

이름 의미 기본값 속성
width 수치 조정 바의 슬라이드 너비 15 상수
length 수치 조정 바의 길이 100 상수
relief 수치 조정 바의 테두리 모양 flat flat, groove, raised, ridge, solid, sunken
borderwidth=bd 수치 조정 바의 테두리 두께 1 상수
foreground=fg 수치 조정 바의 문자열 색상 SystemButtonText color
background=bg 수치 조정 바의 배경 색상 SystemButtonFace color
troughcolor 수치 조정 바의 내부 배경 색상 SystemScrollbar color
orient 수치 조정 바의 표시 방향 vertical vertical, horizontal
sliderlength 수치 조정 바의 슬라이더 길이 30 상수
sliderrelief 수치 조정 바의 슬라이더 테두리 모양 raised flat, groove, raised, ridge, solid, sunken
tickinterval 수치 조정 바의 수치 값 간격 0 상수


수치 조정 바 형식 설정

이름 의미 기본값 속성
font 수치 조정 바의 문자열 글꼴 설정 TkDefaultFont font
cursor 수치 조정 바의 마우스 커서 모양 - 커서 속성
digits 수치 조정 바의 숫자 값을 문자열로 변환할 때 사용할 유효 숫자의 수 0 상수
from_ 수치 조정 바의 최솟값 0 상수
to 수치 조정 바의 최댓값 100 상수
resolution 수치 조정 바의 값 간격(단위), -1로 설정하면 제한 없음 1 상수


수치 조정 바 상태 설정

이름 의미 기본값 속성
state 상태 설정 normal normal, active, disabled
activebackground active 상태일 때 수치 조정 바의 슬라이더 색상 SystemButtonFace color


수치 조정 바 하이라이트 설정

이름 의미 기본값 속성
highlightcolor 수치 조정 바가 선택되었을 때 색상 SystemWindowFrame color
highlightbackground 수치 조정 바가 선택되지 않았을 때 색상 SystemButtonFace color
highlightthickness 수치 조정 바가 선택되었을 때 두께 (두께 설정) 2 상수


수치 조정 바 동작 설정

이름 의미 기본값 속성
takefocus Tab 키를 이용하여 위젯 이동 허용 여부 - Boolean
command 수치 조정 바의 값이 변경될 때 실행하는 메서드(함수), 현재 값이 문자열로 전달됨 - 메서드, 함수
variable 수치 조정 바의 값을 저장할 제어 변수 - tkinter.IntVar(), tkinter.DoubleVar(), tkinter.StringVar()
bigincrement 수치 조정 바가 Tab된 상태에서 Ctrl 키를 이용하여 한 번에 이동할 양 0 상수
repeatdelay 버튼이 눌러진 상태에서 command 실행까지의 대기 시간 300 상수(ms)
repeatinterval 버튼이 눌러진 상태에서 command 실행의 반복 시간 100 상수(ms)


참고

  • tickinterval를 설정하였을 경우, 수치 조정 바에 tickinterval 값 마다 수치가 표시됨

  • cursor 매개변수

    • arrow, based_arrow_down, based_arrow_up, boat, bogosity, bottom_left_corner, bottom_right_corner, bottom_side, bottom_tee, box_spiral, center_ptr, circle, clock, coffee_mug, cross, cross_reverse, crosshair, diamond_cross, dot, dotbox, double_arrow, draft_large, draft_small, draped_box, exchange, fleur, gobbler, gumby, hand1, hand2, heart, icon, iron_cross, left_ptr, left_side, left_tee, leftbutton, ll_angle, lr_angle, man, middlebutton, mouse, pencil, pirate, plus, question_arrow, right_ptr, right_side, right_tee, rightbutton, rtl_logo, sailboat, sb_down_arrow, sb_h_double_arrow, sb_left_arrow, sb_right_arrow, sb_up_arrow, sb_v_double_arrow, shuttle, sizing, spider, spraycan, star, target, tcross, top_left_arrow, top_left_corner, top_right_corner, top_side, top_tee, trek, ul_angle, umbrella, ur_angle, watch, wait, xterm, X_cursor

  • highlightbackground를 설정하였을 경우, 수치 조정 바가 선택되지 않았을 때에도 두께가 표시됨

  • takefocus를 True로 설정한 뒤, Tab이 된 상태에서 Ctrl키와 좌우 방향키를 동시에 눌러 bigincrement 의 값 만큼 한 번에 이동됨

  • repeatdelay=100 일 경우, 누르고 있기 시작한 0.1초 후에 command가 실행됨

  • repeatdelay=1000, repeatinterval=100 일 경우, 1초 후에 command가 실행되며 0.1초마다 버튼을 뗄 때까지 command가 계속 실행됨

댓글 남기기