Checkbutton

chk = tk.Checkbutton(parent, opcao=valor, ...)

Cria um Checkbutton numa janela ou numa frame, ‘parent’.

O construtor retorna o objeto Checkbutton.

O componente Checkbutton é um componente que tem 2 estados 1 ou 0, alternando o estado quando se clica nele.

Um componente Checkbutton é composto por duas partes: um indicator que mostra o estado do componente, e uma label que mostra o texto ao lado do componente.

Podemos alterar o aspecto de um Checkbutton se usarmos a opção indicator e a pusermos a 0. Isso transforma o componente num checkbutton com dois estados, conforme está clicado ou não:

Fig. 1 – Componente Checkbutton com indicatoron=0

Para obter e/ou alterar o estado do Checkbutton temos de criar uma variável de controle, instância da classe IntVar, que depois referenciamos na propriedade variable.

Podemos capturar os eventos sobre o Checkbutton, definindo uma função de callback, na propriedade command.

Atributos

OpçãoDescrição
activebackgroundCor de fundo quando o cursor está sobre o checkbutton.
activeforegroundCor de texto quando o cursor está sobre o checkbutton.
anchorPosicionamento do texto: CENTER, N, S, E, W, NE, NW, SE, SW.
bd ou borderwidthEspessura do bordo à volta do checkbutton. Valor de defeito: 2 pixeis.
bg ou backgroundCor de fundo.
bitmapNome de um dos bitamps standard ou de um bitmap customizado.
commandFunção a ser chamada quando o checkbutton é clicado.
compoundUsar esta opção caso queira usar texto e gráfico neste componente. Os valores desta opção descrevem o posicionamento do gráfico face ao texto e podem ser: BOTTOM, TOP, LEFT, RIGHT, or CENTER.
cursorNome do cursor a ser mostrado quando o rato está sobre o checkbutton.
defaulttk.NORMAL é o valor de defeito; tk.DISABLED se o checkbutton fôr para ser mostrado desabilitado.
disabledforegroundCor de texto usado quando o checkbutton estiver desabilitado.
fg ou foregroundCor de texto.
fontNome da fonte do texto do checkbutton.
heightAltura do checkbutton em número de linhas (para checkbutton com texto) ou pixeis (para checkbutton com imagem).
highlightbackgroundCor do foco quando o checkbutton nao tem o foco.
highlightcolorCor do foco quando o checkbutton tem o foco.
highlightthicknessEspessura do foco.
imageImagem a ser mostrada (em vez do texto)
indicatoronSe esta opção fôr igual a zero, o checkbutton transforma-se num checkbutton com dois estados: para baixo está selecionado(1), para cima está deselecionado (0).
justifyJustificação de multiplas linhas: tk.LEFT, tk.CENTER ou tk.RIGHT.
offreliefPor defeito, um checkbutton está para cima (RAISED) quando o seu valor é 0 (off). Pode-se usar esta opção para definir outros estilos de relevo quando o checkbutton está off.
offvaluePor defeito, a variável de controle está a 0 quando o checkbutton está off. Pode-se usar esta opção para definir outro valor para a variável de controle quando o checkbutton está off.
onvaluePor defeito, a variável de controle está a 1 quando o checkbutton está on. Pode-se usar esta opção para definir outro valor para a variável de controle quando o checkbutton está on.
overreliefEstilo de relevo quando o rato está sobre o checkbutton. Valor de defeito é tk.RAISED.
padxPadding adicional à esquerda e à direita do texto.
padyPadding adicional acima e abaixo do texto.
reliefTipo de relevo do checkbutton. Valor de defeito: tk.RAISED.
selectcolorDefine a cor do checkbutton quando está On.
selectimageDefine uma imagem quando o checkbutton está On.
stateValor tk.DISABLED torna o checkbutton irresponsivo. Valor tk.ACTIVE quando o rato está sobre o checkbutton. Valor tk.NORMAL é o valor de defeito.
takefocusSe igual a zero o checkbutton não receberá o foco a partir do teclado.
textTexto do checkbutton.
textvariableUma instância de StringVar() que está associada ao texto do checkbutton. Se o texto da variável mudar, o texto do checkbutton mudará igualmente.
variableDefine a variável de controle que é, normalmente, um IntVar. O valor 0 significa que o checkbutton está Off e o valor 1 significa que o checkbutton está On.
widthLargura do checkbutton em carateres (para checkbutton com text) ou pixeis (para checkbutton com imagem).
wraplengthSe este valor fôr um valor positivo, as linhas de texto serão quebradas para caberem neste comprimento.

Métodos

.deselect() : Deseleciona o checkbutton: põe-no a Off.

.flash() : pisca o checkbutton entre as cores ativa e normal.

.invoke() : chama a função especificada em command e retorna o que aquela função retornar. Não tem efeito se o checkbutton estiver desabilitado ou não estiver definida uma função de callback.

.select() : Seleciona o checkbutton: põe-no a On.

.toggle() : Seleciona o checkbutton se estiiver deselecionado e vice-versa.

Exemplo:

from tkinter import *
from tkinter import messagebox

window = Tk()

Label(window, text="Linguagens:").grid(row=0, sticky=W)

#Checkbuttons:
pythonVar = IntVar()
Checkbutton(window, text="Python", variable=pythonVar).grid(row=1, sticky=W)
javaVar = IntVar()
Checkbutton(window, text="Java", variable=javaVar).grid(row=2, sticky=W)
cVar = IntVar()
Checkbutton(window, text="C", variable=cVar).grid(row=3, sticky=W)


#função de callback do botão:
def verLinguagem():
    str = ""
    if pythonVar.get() == 1:
        str+= "Python "
    if javaVar.get() == 1:
        str += "Java "
    if cVar.get() == 1:
        str += "C "
    messagebox.showinfo("Linguagens", str)


bt = Button(window, text="Ver", command=verLinguagem)
bt.grid(row=4, sticky=E)

window.mainloop()

Saída: