2024. 3. 4. 17:53ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 Tkinter Scale 위젯을 사용하여 슬라이더를 만드는 방법을 배웁니다.
Tkinter 슬라이더 위젯 소개
슬라이더를 사용하면 표시기를 움직여 값을 입력할 수 있습니다. 슬라이더는 수직 또는 수평일 수 있습니다.

슬라이더를 만들려면 다음과 같이 ttk.Scale() 생성자를 사용합니다 .
ttk.Scale(container,from_,to)
이 구문에서는 container는 슬라이더의 상위 구성 요소를 지정합니다.
from_ 및 to 옵션은 슬라이더의 최소값과 최대값을 지정합니다. from은 Python의 키워드이므로 Tkinter는 대신 from_을 사용합니다.
기본적으로 슬라이더는 수평입니다. 슬라이더 배열 방법을 지정하려면 수평 또는 수직이 되는 orient 옵션을 사용합니다. 예를 들어:
slider = ttk.Scale(
root,
from_=0,
to=100,
orient='vertical', # horizontal
)
현재 가치 얻기
슬라이더의 현재 값을 얻으려면 다음과 같이 슬라이더의 variable에 DoubleVar를 할당할 수 있습니다.
current_value = tk.DoubleVar()
slider = ttk.Scale(
root,
from_=0,
to=100,
orient='horizontal',
variable=current_value
)
슬라이더의 현재 값을 얻는 또 다른 방법은 슬라이더 객체의 get() 메서드를 호출하는 것입니다.
slider.get()
콜백 실행
슬라이더 값이 변경될 때마다 기능을 실행하려면 다음과, 같이 command 옵션에 할당하면 됩니다.
def slider_changed(event):
print(slider.get())
slider = ttk.Scale(
root,
from_=0,
to=100,
orient='horizontal',
variable=current_value,
command=slider_changed
)
슬라이더 값이 변경될 때 함수를 호출하면 성능 문제가 발생할 수 있습니다.
슬라이더 비활성화
슬라이더를 비활성화하려면 상태를 'disabled'로 설정합니다. 다시 활성화하려면 상태를 'normal'로 설정하세요.
slider['state'] = 'disabled'
slider['state'] = 'normal'
Tkinter 슬라이더 예
다음 프로그램은 Tkinter 슬라이더 위젯을 사용하는 방법을 보여줍니다. 슬라이더 값을 변경하면 레이블이 슬라이더의 현재 값을 업데이트합니다.
import tkinter as tk
from tkinter import ttk
# root window
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Slider Demo')
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=3)
# slider current value
current_value = tk.DoubleVar()
def get_current_value():
return '{: .2f}'.format(current_value.get())
def slider_changed(event):
value_label.configure(text=get_current_value())
# label for the slider
slider_label = ttk.Label(
root,
text='Slider:'
)
slider_label.grid(
column=0,
row=0,
sticky='w'
)
# slider
slider = ttk.Scale(
root,
from_=0,
to=100,
orient='horizontal', # vertical
command=slider_changed,
variable=current_value
)
slider.grid(
column=1,
row=0,
sticky='we'
)
# current value label
current_value_label = ttk.Label(
root,
text='Current Value:'
)
current_value_label.grid(
row=1,
columnspan=2,
sticky='n',
ipadx=10,
ipady=10
)
# value label
value_label = ttk.Label(
root,
text=get_current_value()
)
value_label.grid(
row=2,
columnspan=2,
sticky='n'
)
root.mainloop()

요약
- 슬라이더 위젯을 생성하려면 ttk.Scale()를 사용하세요 .
- scale.get() 또는 variable 옵션을 사용하여 슬라이더의 현재 값을 가져옵니다.
- 슬라이더 값이 변경될 때, 실행될 기능을 할당하려면 command 옵션을 사용하십시오 .
'GUI > tkinter' 카테고리의 다른 글
Tkinter Sizegrip (0) | 2024.03.06 |
---|---|
Tkinter Spinbox (0) | 2024.03.05 |
Tkinter Listbox (0) | 2024.03.03 |
Tkinter Combobox (0) | 2024.03.02 |
Tkinter Radio Button (0) | 2024.03.01 |