Scales (Sliders) are used to select among a range of numeric values.
# scale1.py
import tkinter as tk
def show_values():
print("{} {}".format(scale1.get(), scale2.get())) # using get() method
root = tk.Tk() # root widget
scale1 = tk.Scale(root, from_=0, to=50, label="Power",
tickinterval=10, resolution=5, length=200)
scale1.set(10) # initial value
scale1.grid()
scale2 = tk.Scale(root, from_=0, to=200, orient=tk.HORIZONTAL,
resolution=10, label="Velocity")
scale2.grid()
button = tk.Button(root, text='Show', command=show_values)
button.grid()
root.mainloop()
Selected keyword arguments in Scale()
master=root # the first argument
from_=0 # minimum value ('from_' because 'from' is a keyword)
to=50 # maximum value
variable=var
command=lambda value: print(value)
tickinterval=10 # the number of units between marks (default no marks)
resolution=5 # the number of units thats the scale's value jumps (default 1)
showvalue=tk.NO # or tk.YES (default); show the scale's current value
orient=tk.VERTICAL # default
orient=tk.HORIZONTAL
length=200 # in points (pixels)
# scale2.py (using 'variable' and 'command')
# Note that different scales may share the same variable and then
# they are synchronized.
import tkinter as tk
def show_values():
print ( "{} {}".format(var1.get(), var2.get()) ) # variables!
root = tk.Tk() # root widget
var1 = tk.DoubleVar()
var1.set(10) # initial value for the variable
var2 = tk.DoubleVar()
scale1 = tk.Scale(root, from_=0, to=50, variable=var1,
tickinterval=10, showvalue=tk.NO, length=200,
command=lambda value: print(value))
scale1.grid()
scale2 = tk.Scale(root, from_=0, to=1, orient=tk.HORIZONTAL, variable=var2,
resolution=0.1, command=lambda value: print(value))
scale2.grid()
button = tk.Button(root, text='Show', command=show_values)
button.grid()
root.mainloop()