Python GUI Programming

Dominando o Widget Scale do Tkinter

Spread the love

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *