Python Tkinter – Checkbutton Widget

The Checkbutton widget is a standard Tkinter widget that is used to implement on/off selections. Checkbuttons can contain text or images. When the button is pressed, Tkinter calls that function or method.

Note: For more reference, you can read our article,

Tkinter Checkbutton Widget Syntax

The syntax to use the checkbutton is given below.

Syntax: Checkbutton ( master, options)
Parameters:

  • master: This parameter is used to represents the parent window.
  • options:There are many options which are available and they can be used as key-value pairs separated by commas.

Tkinter Checkbutton Options

The following are commonly used Options that can be used with this widget:

  • activebackground: This option used to represent the background color when the checkbutton is under the cursor.
  • activeforeground: This option used to represent the foreground color when the checkbutton is under the cursor.
  • bg: This option used to represent the normal background color displayed behind the label and indicator.
  • bitmap: This option used to display a monochrome image on a button.
  • bd: This option used to represent the size of the border around the indicator and the default value is 2 pixels.
  • command: This option is associated with a function to be called when the state of the checkbutton is changed.
  • cursor: By using this option, the mouse cursor will change to that pattern when it is over the checkbutton.
  • disabledforeground: The foreground color used to render the text of a disabled checkbutton. The default is a stippled version of the default foreground color.
  • font: This option used to represent the font used for the text.
  • fg: This option used to represent the color used to render the text.
  • height: This option used to represent the number of lines of text on the checkbutton and it’s default value is 1.
  • highlightcolor: This option used to represent the color of the focus highlight when the checkbutton has the focus.
  • image: This option used to display a graphic image on the button.
  • justify: This option used to control how the text is justified: CENTER, LEFT, or RIGHT.
  • offvalue: The associated control variable is set to 0 by default if the button is unchecked. We can change the state of an unchecked variable to some other one.
  • onvalue: The associated control variable is set to 1 by default if the button is checked. We can change the state of the checked variable to some other one.
  • padx: This option used to represent how much space to leave to the left and right of the checkbutton and text. It’s default value is 1 pixel.
  • pady: This option used to represent how much space to leave above and below the checkbutton and text. It’s default value is 1 pixel.
  • relief: The type of the border of the checkbutton. It’s default value is set to FLAT.
  • selectcolor: This option used to represent the color of the checkbutton when it is set. The Default is selectcolor=”red”.
  • selectimage: The image is shown on the checkbutton when it is set.
  • state: It represents the state of the checkbutton. By default, it is set to normal. We can change it to DISABLED to make the checkbutton unresponsive. The state of the checkbutton is ACTIVE when it is under focus.
  • text: This option used use newlines (“\n”) to display multiple lines of text.
  • underline: This option used to represent the index of the character in the text which is to be underlined. The indexing starts with zero in the text.
  • variable: This option used to represents the associated variable that tracks the state of the checkbutton.
  • width: This option used to represents the width of the checkbutton. and also represented in the number of characters that are represented in the form of texts.
  • wraplength: This option will be broken text into the number of pieces.

Methods

Methods used in this widgets are as follows:

  • deselect(): This method is called to turn off the checkbutton.
  • flash(): The checkbutton is flashed between the active and normal colors.
  • invoke(): This method will invoke the method associated with the checkbutton.
  • select(): This method is called to turn on the checkbutton.
  • toggle(): This method is used to toggle between the different Checkbuttons.

Checkbutton with Toggle Functionality

In this example, below code sets up a Tkinter window with a checkbutton labeled “Enable Feature”. When clicked, it prints whether the button is selected or deselected. It customizes the appearance of the checkbutton and adds a bitmap image to it. Finally, the checkbutton is displayed in the window and flashes briefly.

Python3
import tkinter as tk

def on_button_toggle():
    if var.get() == 1:
        print("Checkbutton is selected")
    else:
        print("Checkbutton is deselected")

root = tk.Tk()

# Creating a Checkbutton
var = tk.IntVar()
checkbutton = tk.Checkbutton(root, text="Enable Feature", variable=var, 
                             onvalue=1, offvalue=0, command=on_button_toggle)

# Setting options for the Checkbutton
checkbutton.config(bg="lightgrey", fg="blue", font=("Arial", 12), 
                   selectcolor="green", relief="raised", padx=10, pady=5)

# Adding a bitmap to the Checkbutton
checkbutton.config(bitmap="info", width=20, height=2)

# Placing the Checkbutton in the window
checkbutton.pack(padx=40, pady=40)

# Calling methods on the Checkbutton
checkbutton.flash()

root.mainloop()

Output

Python Tkinter – Checkbutton Widget

Multiple Checkbuttons for Selection

In this example, below code creates a Tkinter window with three checkbuttons labeled “Tutorial”, “Student”, and “Courses”. Each button toggles between selected and deselected states. The window size is set to 300×200 pixels, and each button has a size of 2×10 units.

Python3
from tkinter import *

root = Tk() 
root.geometry("300x200") 

w = Label(root, text ='w3wiki', font = "50") 
w.pack() 

Checkbutton1 = IntVar() 
Checkbutton2 = IntVar() 
Checkbutton3 = IntVar() 

Button1 = Checkbutton(root, text = "Tutorial", 
                    variable = Checkbutton1, 
                    onvalue = 1, 
                    offvalue = 0, 
                    height = 2, 
                    width = 10) 

Button2 = Checkbutton(root, text = "Student", 
                    variable = Checkbutton2, 
                    onvalue = 1, 
                    offvalue = 0, 
                    height = 2, 
                    width = 10) 

Button3 = Checkbutton(root, text = "Courses", 
                    variable = Checkbutton3, 
                    onvalue = 1, 
                    offvalue = 0, 
                    height = 2, 
                    width = 10) 
    
Button1.pack() 
Button2.pack() 
Button3.pack() 

mainloop() 

Output