Checkbuttons são elementos fundamentais da interface do usuário (UI) no Tkinter, oferecendo uma maneira simples para os usuários selecionarem ou desselecionarem opções. Este tutorial explora vários aspectos do uso de checkbuttons, desde a implementação básica até técnicas avançadas, como a vinculação de funções de callback e a modificação de estados padrão.
Sumário:
- Exemplo Básico de Checkbutton
- Seleção e Desseleção Programáticas
- Alternando o Estado do Checkbutton
- Vinculando Funções de Callback
- Definindo o Valor Padrão do Checkbutton
- Explorando Opções Adicionais
1. Exemplo Básico de Checkbutton
Vamos começar com um exemplo simples demonstrando um único checkbutton:
import tkinter as tk
root = tk.Tk()
root.title("Exemplo de Checkbutton")
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Concordo com os termos", variable=var)
checkbutton.pack()
root.mainloop()
Isso cria uma janela contendo um checkbutton rotulado como “Concordo com os termos”. O BooleanVar()
armazena o estado do checkbutton (True para selecionado, False para desselecionado). O pack()
posiciona o checkbutton na janela.
2. Seleção e Desseleção Programáticas
Você pode controlar diretamente o estado do checkbutton usando sua variável associada:
import tkinter as tk
root = tk.Tk()
root.title("Controle de Checkbutton")
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Selecione-me!", variable=var)
checkbutton.pack()
def select():
var.set(True)
def deselect():
var.set(False)
select_button = tk.Button(root, text="Selecionar", command=select)
select_button.pack()
deselect_button = tk.Button(root, text="Desselecionar", command=deselect)
deselect_button.pack()
root.mainloop()
Este exemplo adiciona botões para selecionar e desselecionar o checkbutton programaticamente.
3. Alternando o Estado do Checkbutton
Um caso de uso frequente envolve alternar o estado do checkbutton:
import tkinter as tk
root = tk.Tk()
root.title("Alternar Checkbutton")
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Alternar-me!", variable=var, command=lambda: print(f"Estado do Checkbutton: {var.get()}"))
checkbutton.pack()
root.mainloop()
A opção command
aciona uma função (aqui, imprimindo o estado atual) cada vez que o checkbutton é alternado.
4. Vinculando Funções de Callback
Ações mais complexas podem ser realizadas usando uma função de callback personalizada:
import tkinter as tk
root = tk.Tk()
root.title("Callback de Checkbutton")
def callback():
if var.get():
print("Checkbutton selecionado!")
else:
print("Checkbutton desselecionado!")
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="Acionar Callback!", variable=var, command=callback)
checkbutton.pack()
root.mainloop()
Este exemplo demonstra uma função de callback que imprime uma mensagem com base no estado do checkbutton.
5. Definindo o Valor Padrão do Checkbutton
O estado inicial do checkbutton pode ser definido:
import tkinter as tk
root = tk.Tk()
root.title("Valor Padrão do Checkbutton")
var = tk.BooleanVar(value=True) # Inicialmente selecionado
checkbutton = tk.Checkbutton(root, text="Selecionado por Padrão!", variable=var)
checkbutton.pack()
root.mainloop()
Ao inicializar BooleanVar
como True
, o checkbutton começa no estado selecionado.
6. Explorando Opções Adicionais
O widget Checkbutton
do Tkinter oferece várias outras opções para personalização, incluindo:
onvalue
eoffvalue
: Personalize os valores associados aos estados selecionado e desselecionado (o padrão é 1 e 0, respectivamente).variable
: Embora tenhamos usadoBooleanVar
, você pode usar outros tipos de variáveis para gerenciamento de estado mais complexo.indicatoron
: Controla se o checkbutton exibe um indicador visual (quadrado).selectcolor
: Altera a cor do indicador selecionado.offrelief
eonrelief
: Controlam a aparência 3D do botão nos estados selecionado e não selecionado.
Consulte a documentação oficial do Tkinter para uma lista completa de opções e seu uso.