Tkinter Tutorial - Checkbutton

Jinku Hu 30 janeiro 2023
  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
Tkinter Tutorial - Checkbutton

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

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().

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.

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.

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.
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook