Places a label next to an indicator.
<picture> <source srcset="check-button-dark.png" media="(prefers-color-scheme: dark)"> <img alt="Example GtkCheckButtons" src="check-button.png"> </picture>
A `GtkCheckButton` is created by calling either [ctor@Gtk.CheckButton.new] or [ctor@Gtk.CheckButton.new_with_label].
The state of a `GtkCheckButton` can be set specifically using [method@Gtk.CheckButton.set_active], and retrieved using [ method@Gtk.CheckButton.get_active].
In addition to "on" and "off", check buttons can be an "in between" state that is neither on nor off. This can be used e.g. when the user has selected a range of elements (such as some text or spreadsheet cells) that are affected by a check button, and the current values in that range are inconsistent.
To set a `GtkCheckButton` to inconsistent state, use [method@Gtk.CheckButton.set_inconsistent].
Check buttons can be grouped together, to form mutually exclusive groups - only one of the buttons can be toggled at a time, and toggling another one will switch the currently toggled one off.
Grouped check buttons use a different indicator, and are commonly referred to as *radio buttons*.
<picture> <source srcset="radio-button-dark.png" media="(prefers-color-scheme: dark)"> <img alt="Example GtkRadioButtons" src="radio-button.png"> </picture>
To add a `GtkCheckButton` to a group, use [method@Gtk.CheckButton.set_group].
When the code must keep track of the state of a group of radio buttons, it is recommended to keep track of such state through a stateful `GAction` with a target for each button. Using the `toggled` signals to keep track of the group changes and state is discouraged.
`GtkCheckButton` supports the following keyboard shortcuts:
``` checkbutton.text-button ├── check ╰── [label] ```
A `GtkCheckButton` has a main node with name checkbutton. If the [property@Gtk.CheckButton:label] or [property@Gtk.CheckButton:child] properties are set, it contains a child widget. The indicator node is named check when no group is set, and radio if the checkbutton is grouped together with other checkbuttons.
`GtkCheckButton` uses the [enum@Gtk.AccessibleRole.checkbox] role.