Gtk.RadioButton

const Gtk = imports.gi.Gtk;

let radio_button = new Gtk.RadioButton({
    group: value,
});
  

A single radio button performs the same basic function as a Gtk.CheckButton, as its position in the object hierarchy reflects. It is only when multiple radio buttons are grouped together that they become a different user interface component in their own right.

Every radio button is a member of some group of radio buttons. When one is selected, all other radio buttons in the same group are deselected. A Gtk.RadioButton is one way of giving the user a choice from many options.

Radio button widgets are created with Gtk.new, passing null as the argument if this is the first radio button in a group. In subsequent calls, the group you wish to add this button to should be passed as an argument. Optionally, Gtk.new_with_label can be used if you want a text label on the radio button.

Alternatively, when adding widgets to an existing group of radio buttons, use Gtk.new_from_widget with a Gtk.RadioButton that already has a group assigned to it. The convenience function Gtk.new_with_label_from_widget is also provided.

To retrieve the group a Gtk.RadioButton is assigned to, use Gtk.get_group.

To remove a Gtk.RadioButton from one group and make it part of a new one, use Gtk.set_group.

The group list does not need to be freed, as each Gtk.RadioButton will remove itself and its list item when it is destroyed.

<example> <title>How to create a group of two radio buttons.</title> <programlisting> void create_radio_buttons (void) {

GtkWidget *window, *radio1, *radio2, *box, *entry; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_box_set_homogeneous (GTK_BOX (box), TRUE);

/&ast; Create a radio button with a GtkEntry widget &ast;/ radio1 = gtk_radio_button_new (NULL); entry = gtk_entry_new (<!-- -->); gtk_container_add (GTK_CONTAINER (radio1), entry);

/&ast; Create a radio button with a label &ast;/ radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio1), "I'm the second radio button.");

/&ast; Pack them into a box, then show all the widgets &ast;/ gtk_box_pack_start (GTK_BOX (box), radio1, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (box), radio2, TRUE, TRUE, 2); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show_all (window); return; } </programlisting> </example>

When an unselected button in the group is clicked the clicked button receives the Gtk.toggled signal, as does the previously selected button. Inside the Gtk.toggled handler, Gtk.get_active can be used to determine if the button has been selected or deselected.

Hierarchy

  • GObject.Object
    • GObject.InitiallyUnowned
      • Gtk.Widget
        • Gtk.Container
          • Gtk.Bin
            • Gtk.Button
              • Gtk.ToggleButton
                • Gtk.CheckButton
                  • Gtk.RadioButton