Object Hierarchy:

Object hierarchy for Switch


Switch is a widget that has two states: on or off.

The user can control which state should be active by clicking the empty area, or by dragging the handle.

GtkSwitch can also handle situations where the underlying state changes with a delay. See state_set for details.

CSS nodes

╰── slider
witch has two css nodes, the main node with the name switch and a subnode named slider. Neither of them is using any style classes.


Example: Switch:

public class Application : Gtk.Window {
public Application () {
// Prepare Gtk.Window:
this.title = "My Gtk.Switch";
this.window_position = Gtk.WindowPosition.CENTER;
this.destroy.connect (Gtk.main_quit);

// The button:
Gtk.Switch _switch = new Gtk.Switch ();
this.add (_switch);

_switch.notify["active"].connect (() => {
if (_switch.active) {
print ("The switch is on!\n");
} else {
print ("The switch is off!\n");

// Changes the state to on:
_switch.set_active (true);

public static int main (string[] args) {
Gtk.init (ref args);

Application app = new Application ();
app.show_all ();
Gtk.main ();
return 0;

valac --pkg gtk+-3.0 Gtk.Switch.vala

Namespace: Gtk
Package: gtk+-3.0



Creation methods:



Inherited Members:

All known members inherited from class Gtk.Widget
All known members inherited from interface Atk.Implementor