Class
Gtk.ComboBox
Description [src]
class Gtk.ComboBox : Gtk.Widget {
parent_instance: GtkWidget
}
A GtkComboBox
is a widget that allows the user to choose from a list of
valid choices.
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
[interface@Gtk.CellLayout] 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.
Ancestors
- GtkWidget
- GInitiallyUnowned
- GObject
Constructors
gtk_combo_box_new
Creates a new empty GtkComboBox
.
gtk_combo_box_new_with_entry
Creates a new empty GtkComboBox
with an entry.
gtk_combo_box_new_with_model
Creates a new GtkComboBox
with a model.
gtk_combo_box_new_with_model_and_entry
Creates a new empty GtkComboBox
with an entry and a model.
Instance methods
gtk_combo_box_get_active
Returns the index of the currently active item.
gtk_combo_box_get_active_id
Returns the ID of the active row of combo_box
.
gtk_combo_box_get_active_iter
Sets iter
to point to the currently active item.
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.
gtk_combo_box_get_child
Gets the child widget of combo_box
.
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.
gtk_combo_box_get_has_entry
Returns whether the combo box has an entry.
gtk_combo_box_get_id_column
Returns the column which combo_box
is using to get string IDs
for values from.
gtk_combo_box_get_model
Returns the GtkTreeModel
of combo_box
.
gtk_combo_box_get_popup_fixed_width
Gets whether the popup uses a fixed width.
gtk_combo_box_get_row_separator_func
Returns the current row separator function.
gtk_combo_box_popdown
Hides the menu or dropdown list of combo_box
.
gtk_combo_box_popup
Pops up the menu or dropdown list of combo_box
.
gtk_combo_box_popup_for_device
Pops up the menu of combo_box
.
gtk_combo_box_set_active
Sets the active item of combo_box
to be the item at index
.
gtk_combo_box_set_active_id
Changes the active row of combo_box
to the one that has an ID equal to
active_id
.
gtk_combo_box_set_active_iter
Sets the current active item to be the one referenced by iter
.
gtk_combo_box_set_button_sensitivity
Sets whether the dropdown button of the combo box should update its sensitivity depending on the model contents.
gtk_combo_box_set_child
Sets the child widget of combo_box
.
gtk_combo_box_set_entry_text_column
Sets the model column which combo_box
should use to get strings
from to be text_column
.
gtk_combo_box_set_id_column
Sets the model column which combo_box
should use to get string IDs
for values from.
gtk_combo_box_set_model
Sets the model used by combo_box
to be model
.
gtk_combo_box_set_popup_fixed_width
Specifies whether the popup’s width should be a fixed width.
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.
Methods inherited from GtkWidget (159)
Methods inherited from GtkAccessible (10)
gtk_accessible_get_accessible_role
Retrieves the GtkAccessibleRole
for the given GtkAccessible
.
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_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.
gtk_cell_editable_remove_widget
Emits the GtkCellEditable::remove-widget
signal.
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
.
gtk_cell_layout_clear
Unsets all the mappings on all renderers on cell_layout
and
removes all renderers from cell_layout
.
gtk_cell_layout_clear_attributes
Clears all existing attributes previously set with
gtk_cell_layout_set_attributes()
.
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
.
gtk_cell_layout_get_cells
Returns the cell renderers which have been added to cell_layout
.
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
.
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
.
gtk_cell_layout_reorder
Re-inserts cell
at position
.
gtk_cell_layout_set_attributes
Sets the attributes in list as the attributes of cell_layout
.
gtk_cell_layout_set_cell_data_func
Sets the GtkCellLayoutDataFunc
to use for cell_layout
.
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 ::query-tooltip signal on widget
.
Gtk.Widget:height-request
Override 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
Override for width request of the widget.
Properties inherited from GtkAccessible (1)
Gtk.Accessible:accessible-role
The accessible role of the given GtkAccessible
implementation.
Properties inherited from GtkCellEditable (1)
Gtk.CellEditable:editing-canceled
Indicates whether editing on the cell has been canceled.
Signals
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)
Gtk.Widget::destroy
Signals that all holders of a reference to the widget should release the reference that they hold.
Gtk.Widget::direction-changed
Emitted when the text direction of a widget changes.
Gtk.Widget::hide
Emitted when widget
is hidden.
Gtk.Widget::keynav-failed
Emitted if keyboard navigation fails.
Gtk.Widget::map
Emitted when widget
is going to be mapped.
Gtk.Widget::mnemonic-activate
Emitted when a widget is activated via a mnemonic.
Gtk.Widget::move-focus
Emitted when the focus is moved.
Gtk.Widget::query-tooltip
Emitted when the widgets tooltip is about to be shown.
Gtk.Widget::realize
Emitted when widget
is associated with a GdkSurface
.
Gtk.Widget::show
Emitted when widget
is shown.
Gtk.Widget::state-flags-changed
Emitted when the widget state changes.
Gtk.Widget::unmap
Emitted when widget
is going to be unmapped.
Gtk.Widget::unrealize
Emitted when the GdkSurface
associated with widget
is destroyed.
Signals inherited from GtkCellEditable (2)
Gtk.CellEditable::editing-done
This signal is a sign for the cell renderer to update its
value from the cell_editable
.
Gtk.CellEditable::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
);
}
Class members
parent_class |
|
The parent class. |
|
changed |
|
No description available. | |
format_entry_text |
|
No description available. |