Class

GtkComboBox

deprecated: 4.10 

Description [src]

class Gtk.ComboBox : Gtk.Widget
  implements Gtk.Accessible, Gtk.Buildable, Gtk.CellEditable, Gtk.CellLayout, Gtk.ConstraintTarget {
  /* No available fields */
}

A GtkComboBox is a widget that allows the user to choose from a list of valid choices.

An example GtkComboBox

The GtkComboBox displays the selected choice; when activated, the GtkComboBox displays a popup which allows the user to make a new choice.

The GtkComboBox uses the model-view pattern; the list of valid choices is specified in the form of a tree model, and the display of the choices can be adapted to the data in the model by using cell renderers, as you would in a tree view. This is possible since GtkComboBox implements the GtkCellLayout interface. The tree model holding the valid choices is not restricted to a flat list, it can be a real tree, and the popup will reflect the tree structure.

To allow the user to enter values not in the model, the GtkComboBox:has-entry property allows the GtkComboBox to contain a GtkEntry. This entry can be accessed by calling gtk_combo_box_get_child() on the combo box.

For a simple list of textual choices, the model-view API of GtkComboBox can be a bit overwhelming. In this case, GtkComboBoxText offers a simple alternative. Both GtkComboBox and GtkComboBoxText can contain an entry.

CSS nodes

combobox
├── box.linked
│   ╰── button.combo
│       ╰── box
│           ├── cellview
│           ╰── arrow
╰── window.popup

A normal combobox contains a box with the .linked class, a button with the .combo class and inside those buttons, there are a cellview and an arrow.

combobox
├── box.linked
│   ├── entry.combo
│   ╰── button.combo
│       ╰── box
│           ╰── arrow
╰── window.popup

A GtkComboBox with an entry has a single CSS node with name combobox. It contains a box with the .linked class. That box contains an entry and a button, both with the .combo class added. The button also contains another node with name arrow.

Accessibility

GtkComboBox uses the GTK_ACCESSIBLE_ROLE_COMBO_BOX role.

Deprecated since: 4.10

Use GtkDropDown instead.

Hierarchy

hierarchy this GtkComboBox implements_0 GtkAccessible this--implements_0 implements_1 GtkBuildable this--implements_1 implements_2 GtkCellEditable this--implements_2 implements_3 GtkCellLayout this--implements_3 implements_4 GtkConstraintTarget this--implements_4 ancestor_0 GtkWidget ancestor_0--this ancestor_1 GInitiallyUnowned ancestor_1--ancestor_0 ancestor_2 GObject ancestor_2--ancestor_1

Descendants

Constructors

gtk_combo_box_new

Creates a new empty GtkComboBox.

deprecated: 4.10 

gtk_combo_box_new_with_entry

Creates a new empty GtkComboBox with an entry.

deprecated: 4.10 

gtk_combo_box_new_with_model

Creates a new GtkComboBox with a model.

deprecated: 4.10 

gtk_combo_box_new_with_model_and_entry

Creates a new empty GtkComboBox with an entry and a model.

deprecated: 4.10 

Instance methods

gtk_combo_box_get_active

Returns the index of the currently active item.

deprecated: 4.10 

gtk_combo_box_get_active_id

Returns the ID of the active row of combo_box.

deprecated: 4.10 

gtk_combo_box_get_active_iter

Sets iter to point to the currently active item.

deprecated: 4.10 

gtk_combo_box_get_button_sensitivity

Returns whether the combo box sets the dropdown button sensitive or not when there are no items in the model.

deprecated: 4.10 

gtk_combo_box_get_child

Gets the child widget of combo_box.

deprecated: 4.10 

gtk_combo_box_get_entry_text_column

Returns the column which combo_box is using to get the strings from to display in the internal entry.

deprecated: 4.10 

gtk_combo_box_get_has_entry

Returns whether the combo box has an entry.

deprecated: 4.10 

gtk_combo_box_get_id_column

Returns the column which combo_box is using to get string IDs for values from.

deprecated: 4.10 

gtk_combo_box_get_model

Returns the GtkTreeModel of combo_box.

deprecated: 4.10 

gtk_combo_box_get_popup_fixed_width

Gets whether the popup uses a fixed width.

deprecated: 4.10 

gtk_combo_box_get_row_separator_func

Returns the current row separator function.

deprecated: 4.10 

gtk_combo_box_popdown

Hides the menu or dropdown list of combo_box.

deprecated: 4.10 

gtk_combo_box_popup

Pops up the menu or dropdown list of combo_box.

deprecated: 4.10 

gtk_combo_box_popup_for_device

Pops up the menu of combo_box.

deprecated: 4.10 

gtk_combo_box_set_active

Sets the active item of combo_box to be the item at index.

deprecated: 4.10 

gtk_combo_box_set_active_id

Changes the active row of combo_box to the one that has an ID equal to active_id.

deprecated: 4.10 

gtk_combo_box_set_active_iter

Sets the current active item to be the one referenced by iter.

deprecated: 4.10 

gtk_combo_box_set_button_sensitivity

Sets whether the dropdown button of the combo box should update its sensitivity depending on the model contents.

deprecated: 4.10 

gtk_combo_box_set_child

Sets the child widget of combo_box.

deprecated: 4.10 

gtk_combo_box_set_entry_text_column

Sets the model column which combo_box should use to get strings from to be text_column.

deprecated: 4.10 

gtk_combo_box_set_id_column

Sets the model column which combo_box should use to get string IDs for values from.

deprecated: 4.10 

gtk_combo_box_set_model

Sets the model used by combo_box to be model.

deprecated: 4.10 

gtk_combo_box_set_popup_fixed_width

Specifies whether the popup’s width should be a fixed width.

deprecated: 4.10 

gtk_combo_box_set_row_separator_func

Sets the row separator function, which is used to determine whether a row should be drawn as a separator.

deprecated: 4.10 

Methods inherited from GtkWidget (162)

Please see GtkWidget for a full list of methods.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Methods inherited from GtkAccessible (19)
gtk_accessible_announce

Requests the user’s screen reader to announce the given message.

since: 4.14

gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

since: 4.10

gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

gtk_accessible_get_at_context

Retrieves the accessible implementation for the given GtkAccessible.

since: 4.10

gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

since: 4.10

gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

since: 4.10

gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

since: 4.10

gtk_accessible_get_platform_state

Query a platform state, such as focus.

since: 4.10

gtk_accessible_reset_property

Resets the accessible property to its default value.

gtk_accessible_reset_relation

Resets the accessible relation to its default value.

gtk_accessible_reset_state

Resets the accessible state to its default value.

gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

since: 4.10

gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling of self.

since: 4.10

gtk_accessible_update_property

Updates a list of accessible properties.

gtk_accessible_update_property_value

Updates an array of accessible properties.

gtk_accessible_update_relation

Updates a list of accessible relations.

gtk_accessible_update_relation_value

Updates an array of accessible relations.

gtk_accessible_update_state

Updates a list of accessible states. See the GtkAccessibleState documentation for the value types of accessible states.

gtk_accessible_update_state_value

Updates an array of accessible states.

Methods inherited from GtkBuildable (1)
gtk_buildable_get_buildable_id

Gets the ID of the buildable object.

Methods inherited from GtkCellEditable (3)
gtk_cell_editable_editing_done

Emits the GtkCellEditable::editing-done signal.

deprecated: 4.10 

gtk_cell_editable_remove_widget

Emits the GtkCellEditable::remove-widget signal.

deprecated: 4.10 

gtk_cell_editable_start_editing

Begins editing on a cell_editable.

Methods inherited from GtkCellLayout (10)
gtk_cell_layout_add_attribute

Adds an attribute mapping to the list in cell_layout.

deprecated: 4.10 

gtk_cell_layout_clear

Unsets all the mappings on all renderers on cell_layout and removes all renderers from cell_layout.

deprecated: 4.10 

gtk_cell_layout_clear_attributes

Clears all existing attributes previously set with gtk_cell_layout_set_attributes().

deprecated: 4.10 

gtk_cell_layout_get_area

Returns the underlying GtkCellArea which might be cell_layout if called on a GtkCellArea or might be NULL if no GtkCellArea is used by cell_layout.

deprecated: 4.10 

gtk_cell_layout_get_cells

Returns the cell renderers which have been added to cell_layout.

deprecated: 4.10 

gtk_cell_layout_pack_end

Adds the cell to the end of cell_layout. If expand is FALSE, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is TRUE.

deprecated: 4.10 

gtk_cell_layout_pack_start

Packs the cell into the beginning of cell_layout. If expand is FALSE, then the cell is allocated no more space than it needs. Any unused space is divided evenly between cells for which expand is TRUE.

deprecated: 4.10 

gtk_cell_layout_reorder

Re-inserts cell at position.

deprecated: 4.10 

gtk_cell_layout_set_attributes

Sets the attributes in the parameter list as the attributes of cell_layout.

deprecated: 4.10 

gtk_cell_layout_set_cell_data_func

Sets the GtkCellLayoutDataFunc to use for cell_layout.

deprecated: 4.10 

Properties

Gtk.ComboBox:active

The item which is currently active.

Gtk.ComboBox:active-id

The value of the ID column of the active row.

Gtk.ComboBox:button-sensitivity

Whether the dropdown button is sensitive when the model is empty.

Gtk.ComboBox:child

The child widget.

Gtk.ComboBox:entry-text-column

The model column to associate with strings from the entry.

Gtk.ComboBox:has-entry

Whether the combo box has an entry.

Gtk.ComboBox:has-frame

The has-frame property controls whether a frame is drawn around the entry.

Gtk.ComboBox:id-column

The model column that provides string IDs for the values in the model, if != -1.

Gtk.ComboBox:model

The model from which the combo box takes its values.

Gtk.ComboBox:popup-fixed-width

Whether the popup’s width should be a fixed width matching the allocated width of the combo box.

Gtk.ComboBox:popup-shown

Whether the combo boxes dropdown is popped up.

Properties inherited from GtkWidget (34)
Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

Gtk.Widget:can-target

Whether the widget can receive pointer events.

Gtk.Widget:css-classes

A list of css classes applied to this widget.

Gtk.Widget:css-name

The name of this widget in the CSS tree.

Gtk.Widget:cursor

The cursor used by widget.

Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

Gtk.Widget:has-default

Whether the widget is the default widget.

Gtk.Widget:has-focus

Whether the widget has the input focus.

Gtk.Widget:has-tooltip

Enables or disables the emission of the GtkWidget::query-tooltip signal on widget.

Gtk.Widget:height-request

Overrides for height request of the widget.

Gtk.Widget:hexpand

Whether to expand horizontally.

Gtk.Widget:hexpand-set

Whether to use the hexpand property.

Gtk.Widget:layout-manager

The GtkLayoutManager instance to use to compute the preferred size of the widget, and allocate its children.

Gtk.Widget:margin-bottom

Margin on bottom side of widget.

Gtk.Widget:margin-end

Margin on end of widget, horizontally.

Gtk.Widget:margin-start

Margin on start of widget, horizontally.

Gtk.Widget:margin-top

Margin on top side of widget.

Gtk.Widget:name

The name of the widget.

Gtk.Widget:opacity

The requested opacity of the widget.

Gtk.Widget:overflow

How content outside the widget’s content area is treated.

Gtk.Widget:parent

The parent widget of this widget.

Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

Gtk.Widget:root

The GtkRoot widget of the widget tree containing this widget.

Gtk.Widget:scale-factor

The scale factor of the widget.

Gtk.Widget:sensitive

Whether the widget responds to input.

Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

Gtk.Widget:vexpand

Whether to expand vertically.

Gtk.Widget:vexpand-set

Whether to use the vexpand property.

Gtk.Widget:visible

Whether the widget is visible.

Gtk.Widget:width-request

Overrides for width request of the widget.

Properties inherited from GtkAccessible (1)
GtkAccessible:accessible-role

The accessible role of the given GtkAccessible implementation.

Properties inherited from GtkCellEditable (1)
GtkCellEditable:editing-canceled

Indicates whether editing on the cell has been canceled.

Signals

Gtk.ComboBox::activate

Emitted to when the combo box is activated.

since: 4.6

Gtk.ComboBox::changed

Emitted when the active item is changed.

Gtk.ComboBox::format-entry-text

Emitted to allow changing how the text in a combo box’s entry is displayed.

Gtk.ComboBox::move-active

Emitted to move the active selection.

Gtk.ComboBox::popdown

Emitted to popdown the combo box list.

Gtk.ComboBox::popup

Emitted to popup the combo box list.

Signals inherited from GtkWidget (13)
GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

GtkWidget::hide

Emitted when widget is hidden.

GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

GtkWidget::map

Emitted when widget is going to be mapped.

GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

GtkWidget::move-focus

Emitted when the focus is moved.

GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

GtkWidget::realize

Emitted when widget is associated with a GdkSurface.

GtkWidget::show

Emitted when widget is shown.

GtkWidget::state-flags-changed

Emitted when the widget state changes.

GtkWidget::unmap

Emitted when widget is going to be unmapped.

GtkWidget::unrealize

Emitted when the GdkSurface associated with widget is destroyed.

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Signals inherited from GtkCellEditable (2)
GtkCellEditable::editing-done

This signal is a sign for the cell renderer to update its value from the cell_editable.

GtkCellEditable::remove-widget

This signal is meant to indicate that the cell is finished editing, and the cell_editable widget is being removed and may subsequently be destroyed.

Class structure

struct GtkComboBoxClass {
  GtkWidgetClass parent_class;
  void (* changed) (
    GtkComboBox* combo_box
  );
  char* (* format_entry_text) (
    GtkComboBox* combo_box,
    const char* path
  );
  void (* activate) (
    GtkComboBox* combo_box
  );
  
}

No description available.

Class members
parent_class: GtkWidgetClass

The parent class.

changed: void (* changed) ( GtkComboBox* combo_box )

Signal is emitted when the active item is changed.

format_entry_text: char* (* format_entry_text) ( GtkComboBox* combo_box, const char* path )

Signal which allows you to change how the text displayed in a combo box’s entry is displayed.

activate: void (* activate) ( GtkComboBox* combo_box )

No description available.

Virtual methods

Gtk.ComboBoxClass.activate
No description available.

Gtk.ComboBoxClass.changed

Signal is emitted when the active item is changed.

Gtk.ComboBoxClass.format_entry_text

Signal which allows you to change how the text displayed in a combo box’s entry is displayed.