O widget Scale
do Tkinter oferece uma maneira amigável para os usuários selecionarem um valor de um intervalo especificado. Isso é particularmente útil quando uma representação visual de uma escolha numérica é necessária, como ajustar volume, brilho ou outras configurações. Este tutorial irá guiá-lo pelos fundamentos do uso do widget Scale
, cobrindo sua funcionalidade principal e opções de personalização.
Sumário
Criando uma Scale Básica
Vamos começar com um exemplo simples que ilustra o uso fundamental do widget Scale
:
import tkinter as tk
root = tk.Tk()
root.title("Exemplo de Scale Tkinter")
# Cria um widget Scale
scale = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL, length=200)
scale.pack(pady=20)
# Função para exibir o valor atual da scale
def show_value():
value = scale.get()
print(f"Valor atual: {value}")
# Cria um botão para exibir o valor
button = tk.Button(root, text="Mostrar Valor", command=show_value)
button.pack()
root.mainloop()
Este código gera uma scale horizontal variando de 0 a 100. O parâmetro orient
define a orientação (tk.HORIZONTAL
ou tk.VERTICAL
), e length
controla o comprimento do widget. A função show_value
recupera o valor selecionado usando scale.get()
, e o botão fornece uma maneira simples de acionar esta ação.
Controle de Orientação e Resolução
O widget Scale
permite controle flexível de orientação e resolução. Vamos criar scales verticais e horizontais com resoluções variadas:
import tkinter as tk
root = tk.Tk()
root.title("Tkinter Scale: Orientação e Resolução")
# Scale Vertical
vertical_scale = tk.Scale(root, from_=0, to=10, orient=tk.VERTICAL, length=150, resolution=0.1)
vertical_scale.pack(side=tk.LEFT, padx=20)
# Scale Horizontal
horizontal_scale = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL, length=200, resolution=5)
horizontal_scale.pack(side=tk.LEFT, padx=20)
# Função para exibir valores de ambas as scales
def show_values():
v_value = vertical_scale.get()
h_value = horizontal_scale.get()
print(f"Valor Vertical: {v_value}")
print(f"Valor Horizontal: {h_value}")
button = tk.Button(root, text="Mostrar Valores", command=show_values)
button.pack()
root.mainloop()
Este exemplo demonstra uma scale vertical e uma horizontal. O parâmetro resolution
dita a granularidade da seleção. resolution=0.1
permite ajustes precisos na scale vertical, enquanto resolution=5
restringe a scale horizontal a incrementos de 5.
Personalização Avançada
Além do uso básico, o widget Scale
oferece extensas opções de personalização. Você pode ajustar o intervalo de marcações, adicionar rótulos e vincular eventos para controles ainda mais interativos. Consulte a documentação oficial do Tkinter para uma visão completa dos métodos e atributos disponíveis. A experimentação é encorajada para descobrir todo o potencial deste widget versátil. Por exemplo, você pode adicionar rótulos usando o parâmetro label
, personalizar o intervalo de marcações usando tickinterval
e responder a mudanças no valor da scale usando a opção command
, que recebe uma função como argumento.