Resumo : neste tutorial, você aprenderá sobre o widget Tkinter Checkbox e como usá-lo de forma eficaz.
Introdução ao widget de caixa de seleção Tkinter
Uma caixa de seleção é um widget que permite marcar e desmarcar.
Uma caixa de seleção pode conter um valor e invocar um retorno de chamada quando estiver marcada ou desmarcada.
Normalmente, você usa uma caixa de seleção quando deseja pedir aos usuários que escolham entre dois valores.
Para criar uma caixa de seleção, você usa o ttk.Checkbutton
construtor:
checkbox_var = tk.StringVar()
def check_changed():
#...
checkbox = ttk.Checkbutton(container,
text='<checkbox label>',
command=check_changed,
variable=checkbox_var,
onvalue='<value_when_checked>',
offvalue='<value_when_unchecked>')
Linguagem de código: Python ( python )
O container
argumento especifica a janela na qual você deseja colocar a caixa de seleção.
O text
argumento especifica o rótulo da caixa de seleção.
O command
é um callable que será chamado assim que a caixa de seleção for marcada ou desmarcada.
O variable
contém o valor atual da caixa de seleção. Se a caixa de seleção estiver marcada, o valor da variável será 1. Caso contrário, será 0.
Se desejar outros valores além de 0 e 1, você pode especificá-los nas opções onvalue
e offvalue
.
Se a variável vinculada não existir, ou seu valor não for nem o valor ligado nem o valor desligado, a caixa de seleção estará no modo indeterminado ou tristate.
Exemplo de caixa de seleção Tkinter
O programa a seguir ilustra como usar um widget de caixa de seleção. Depois de marcar ou desmarcar a caixa de seleção, uma caixa de mensagem mostrará o valor ativado e o valor desativado de acordo:
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo
root = tk.Tk()
root.geometry('300x200')
root.resizable(False, False)
root.title('Checkbox Demo')
agreement = tk.StringVar()
def agreement_changed():
tk.messagebox.showinfo(title='Result',
message=agreement.get())
ttk.Checkbutton(root,
text='I agree',
command=agreement_changed,
variable=agreement,
onvalue='agree',
offvalue='disagree').pack()
root.mainloop()
Linguagem de código: Python ( python )
Saída:
Como funciona.
Primeiro, crie uma variável de string que conterá o valor da caixa de seleção:
agreement = tk.StringVar()
Segundo, defina uma função que será chamada assim que o estado da caixa de seleção for alterado. A função mostra o valor da caixa de seleção:
def agreement_changed():
tk.messagebox.showinfo(title='Result',
message=agreement.get())
Linguagem de código: JavaScript ( javascript )
Terceiro, crie um widget de caixa de seleção e defina suas opções de acordo:
ttk.Checkbutton(root,
text='I agree',
command=agreement_changed,
variable=agreement,
onvalue='agree',
offvalue='disagree').pack()
Linguagem de código: JavaScript ( javascript )
Resumo
- Use
ttk.Checkbutton(text, variable)
para criar uma caixa de seleção; a variável é atk.StringVar()
. - Use
command
o argumento para especificar uma função que é executada quando o botão está marcado ou desmarcado. - Use
onvalue
eoffvalue
para determinar qual valor terávariable
.