O widget Radiobutton
do Tkinter oferece uma maneira amigável ao usuário de apresentar um conjunto de opções mutuamente exclusivas. Este tutorial explora suas funcionalidades, guiando você na criação, personalização e resposta às seleções do usuário.
Sumário:
- Criando Botões de Rádio
- Recuperando Valores Selecionados
- Personalizando a Aparência
- Usando Funções de Callback
1. Criando Botões de Rádio
Para criar botões de rádio, cada um precisa ser vinculado a uma variável compartilhada (tipicamente uma StringVar
). Isso garante que apenas um botão dentro do grupo possa ser selecionado por vez. Veja como criar um conjunto básico:
import tkinter as tk
root = tk.Tk()
root.title("Exemplo de Radiobutton Tkinter")
selected_option = tk.StringVar(value="Opção A")
radio_button_a = tk.Radiobutton(root, text="Opção A", variable=selected_option, value="Opção A")
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="Opção B", variable=selected_option, value="Opção B")
radio_button_b.pack(anchor=tk.W)
radio_button_c = tk.Radiobutton(root, text="Opção C", variable=selected_option, value="Opção C")
radio_button_c.pack(anchor=tk.W)
root.mainloop()
Este código cria três botões de rádio. O argumento variable
os vincula, e o atributo value
atribui um valor à seleção de cada botão.
2. Recuperando Valores Selecionados
Acessar o valor selecionado é simples. Basta usar o método get()
na variável compartilhada:
import tkinter as tk
root = tk.Tk()
root.title("Obter Valor do Radiobutton")
selected_option = tk.StringVar(value="Opção A")
# ... (Criação do Radiobutton como acima) ...
def get_selected():
print(f"Opção selecionada: {selected_option.get()}")
button = tk.Button(root, text="Obter Valor", command=get_selected)
button.pack()
root.mainloop()
Este exemplo adiciona um botão que imprime a opção selecionada quando clicado. O método get()
recupera o valor atual da StringVar
.
3. Personalizando a Aparência
Você pode modificar os aspectos visuais do botão de rádio. Por exemplo, a opção indicatoron
controla a visibilidade do indicador, e selectcolor
muda a cor quando selecionado:
import tkinter as tk
root = tk.Tk()
root.title("Personalizar Aparência do Radiobutton")
selected_option = tk.StringVar(value="Opção A")
radio_button_a = tk.Radiobutton(root, text="Opção A", variable=selected_option, value="Opção A", indicatoron=False, selectcolor="lightgreen")
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="Opção B", variable=selected_option, value="Opção B", selectcolor="lightblue")
radio_button_b.pack(anchor=tk.W)
root.mainloop()
Isso mostra como ocultar o indicador e alterar a cor de seleção. Experimente outros estilos para alcançar a aparência desejada.
4. Usando Funções de Callback
Para uma abordagem mais limpa e responsiva, use a opção command
para vincular diretamente uma função a cada botão de rádio:
import tkinter as tk
root = tk.Tk()
root.title("Callback do Radiobutton")
def option_selected():
print(f"Opção selecionada: {selected_option.get()}")
selected_option = tk.StringVar(value="Opção A")
radio_button_a = tk.Radiobutton(root, text="Opção A", variable=selected_option, value="Opção A", command=option_selected)
radio_button_a.pack(anchor=tk.W)
radio_button_b = tk.Radiobutton(root, text="Opção B", variable=selected_option, value="Opção B", command=option_selected)
radio_button_b.pack(anchor=tk.W)
root.mainloop()
Este método executa option_selected
sempre que um botão é selecionado, fornecendo uma solução mais eficiente e elegante para lidar com interações do usuário.