Tkinter Tutorial - Checkbutton

  1. Exemplo Básico do Checkbutton do Tkinter
  2. Tkinter Checkbutton Select/Deselect
  3. Botão de seleção Tkinter Botão de seleção State Toggle
  4. Botão de verificação da função de retorno de chamada
  5. Alterar o valor padrão do botão Checkbutton Tkinter

O widget Checkbutton é um widget com um valor. Os botões de verificação podem conter tanto texto quanto imagens. Ele também pode ligar a função de retorno de chamada quando o botão de verificação é clicado.

Para criar um widget de botão de verificação em uma janela pai existente, use

tk.Checkbutton(parent, option, ...)

Exemplo Básico do Checkbutton do Tkinter

Tkinter CheckButton_Basic.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 
chkExample.grid(column=0, row=0)
 
app.mainloop()

Tkinter Tutorial Checkbutton Exemplo Básico

chkValue = tk.BooleanVar() 

Cada botão de verificação deve ser associado a uma variável. O tipo de dados da variável é determinado pelo botão de seleção/desmarcação quando selecionada/desmarcada.

chkValue.set(True)

Define o valor original do botão de seleção. Como ele é apenas atribuído com o tipo de dado Boolean, você só tem duas opções aqui, True ou False.

chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 

Agora a instância do botão de verificação é eventualmente criada com a variável chkValue que fizemos acima.

chkExample.grid(column=0, row=0)

A grid é outro tipo de gerenciador de layout Tkinter além da pack introduzida na seção Tkinter Label.

Tkinter tem três gerenciadores de layout/geometria,

  • pack
  • grid
  • place

Vamos introduzir estes gestores de layout/geometria numa secção deste tutorial.

Tkinter Checkbutton Select/Deselect

O usuário pode clicar no botão de verificação no GUI para selecionar ou desmarcar o botão. Você também pode selecionar ou desmarcar o botão utilizando o método select() e deselect().

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.select()
print "The checkbutton value when deselected is {}".format(chkValue.get())
The checkbutton value when selected is True
The checkbutton value when deselected is False

Aqui, o valor do botão de seleção é obtido pelo método get().

Botão de seleção Tkinter Botão de seleção State Toggle

O botão de verificação poderia ser modificado por select() e deselect(), e também poderia ser comutado utilizando o método toggle().

Tkinter CheckButton_Select_Deselect.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 
chkExample.grid(column=0, row=0)


print "The checkbutton original value is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled twice is {}".format(chkValue.get())

app.mainloop()
The checkbutton original value is True
The checkbutton value after toggled is False
The checkbutton value after toggled twice is True

Botão de verificação da função de retorno de chamada

O widget Checkbutton é usado para selecionar os estados e também pode vincular a função de retorno de chamada ao evento quando ele é selecionado/desmarcado, ou mais direto, alternado. Sempre que o estado do botão de verificação é alternado, a função de chamada de retorno é acionada.

Tkinter CheckButton_CallBack.py
import tkinter as tk
from _cffi_backend import callback
 
def callBackFunc():
    print "Oh. I'm clicked"
    
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', 
                            var=chkValue, command=callBackFunc) 
chkExample.grid(column=0, row=0)

app.mainloop()

Cada vez que você pressiona o botão de verificação, você pode ver que ele imprime Oh. I'm clicked no console.

A opção command na classe Checkbutton destina-se a ligar a função ou método de chamada de retorno quando o botão é pressionado.

Alterar o valor padrão do botão Checkbutton Tkinter

O valor padrão correspondente ao botão de seleção não selecionado é 0, e o valor padrão do botão selecionado é 1. E você também pode alterar os valores padrão do botão de seleção e seu tipo de dados associados para o outro valor e/ou tipo de dados.

Tkinter CheckButton_Select_OnValue_OffValue.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.StringVar() 
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue,
                            onvalue="RGB", offvalue="YCbCr") 
chkExample.grid(column=0, row=0)

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.deselect()
print "The checkbutton value when deselected is {}".format(chkValue.get())

app.mainloop()

The checkbutton value when selected is RGB
The checkbutton value when deselected is YCbCr
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue,
                            onvalue="RGB", offvalue="YCbCr") 

O onvalue e o offvalue são opções para alterar valores dos estados selecionado e não selecionado. Eles poderiam ter tipos de dados como Int, String, Float ou outros.

Atenção

O tipo de dados Tkinter associados ao botão de verificação deve ser o mesmo que o de onvalue e offvalue. Caso contrário, ele informa _tkinter.TclError.