Tkinter - Checkbutton

INTRODUCTION

The 'Checkbutton' widget is used to create a multiple-choice interface by assigning each button a variable of its own.


import tkinter as tk

root = tk.Tk()   # root widget

def var_states():
    # values are 0 (unchecked) or 1 (checked)
    print("male: {}, female: {}".format(var1.get(), var2.get()))

var1 = tk.IntVar()
button1 = tk.Checkbutton(root, text="male", variable=var1,
   command=lambda: print("male changed"))
button1.grid(row=0, column=0)

var2 = tk.IntVar()
button2 = tk.Checkbutton(root, text="female", variable=var2,
   command=lambda: print("female changed"))
button2.grid(row=0, column=1)

button3 = tk.Button(root, text='Show', command=var_states)
button3.grid(row=0, column=2)

button4 = tk.Button(root, text='Quit', command=root.quit)
button4.grid(row=0, column=3)

root.mainloop()

import tkinter as tk

root = tk.Tk()   # root widget

states = []

for c in range(10):
    var = tk.IntVar()
    button = tk.Checkbutton(root, text=str(c), variable=var,
        command=lambda: print([var.get() for var in states]))
    button.grid(row=0, column=c)
    states.append(var)   # keep reference

root.mainloop()

Selected keyword arguments in Checkbutton()

master=root     # the first argument
text="text label"
textvariable=strvar   # an alternative to 'text'
variable=var   # a variable linked to the checkbutton
command=lambda: print("message")
onvalue=1   # values reflecting the checked (default 1)
offvalue=0   # and unchecked (default 0)