ComboBox
open class ComboBox : Widget, ComboBoxProtocol
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
[ifaceGtk.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
[propertyGtk.ComboBox:has-entry] property allows the GtkComboBox to
contain a [classGtk.Entry]. This entry can be accessed by calling
[methodGtk.ComboBox.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, [classGtk.ComboBoxText] 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.
The ComboBox type acts as a reference-counted owner of an underlying GtkComboBox instance.
It provides the methods that can operate on this data type through ComboBoxProtocol conformance.
Use ComboBox as a strong reference or owner of a GtkComboBox instance.
-
Designated initialiser from the underlying `C` data type.This creates an instance without performing an unbalanced retain i.e., ownership is transferred to the
ComboBoxinstance.Declaration
Swift
@inlinable public init(_ op: UnsafeMutablePointer<GtkComboBox>)Parameters
oppointer to the underlying object
-
Designated initialiser from a constant pointer to the underlying
Cdata type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBoxinstance.Declaration
Swift
@inlinable public init(_ op: UnsafePointer<GtkComboBox>)Parameters
oppointer to the underlying object
-
Optional initialiser from a non-mutating
gpointerto the underlyingCdata type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBoxinstance.Declaration
Swift
@inlinable override public init!(gpointer op: gpointer?)Parameters
opgpointer to the underlying object
-
Optional initialiser from a non-mutating
gconstpointerto the underlyingCdata type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBoxinstance.Declaration
Swift
@inlinable override public init!(gconstpointer op: gconstpointer?)Parameters
oppointer to the underlying object
-
Optional initialiser from a constant pointer to the underlying
Cdata type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBoxinstance.Declaration
Swift
@inlinable public init!(_ op: UnsafePointer<GtkComboBox>?)Parameters
oppointer to the underlying object
-
Optional initialiser from the underlying
Cdata type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theComboBoxinstance.Declaration
Swift
@inlinable public init!(_ op: UnsafeMutablePointer<GtkComboBox>?)Parameters
oppointer to the underlying object
-
Designated initialiser from the underlying
Cdata type. Will retainGtkComboBox. i.e., ownership is transferred to theComboBoxinstance.Declaration
Swift
@inlinable public init(retaining op: UnsafeMutablePointer<GtkComboBox>)Parameters
oppointer to the underlying object
-
Reference intialiser for a related type that implements
ComboBoxProtocolWill retainGtkComboBox.Declaration
Swift
@inlinable public init<T>(comboBox other: T) where T : ComboBoxProtocolParameters
otheran instance of a related type that implements
ComboBoxProtocol -
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable override public init<T>(cPointer p: UnsafeMutablePointer<T>)Parameters
cPointerpointer to the underlying object
-
Unsafe typed, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable override public init<T>(retainingCPointer cPointer: UnsafeMutablePointer<T>)Parameters
cPointerpointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable override public init(raw p: UnsafeRawPointer)Parameters
praw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable override public init(retainingRaw raw: UnsafeRawPointer) -
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable public required init(raw p: UnsafeMutableRawPointer)Parameters
pmutable raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable required public init(retainingRaw raw: UnsafeMutableRawPointer)Parameters
rawmutable raw pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable override public init(opaquePointer p: OpaquePointer)Parameters
popaque pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ComboBoxProtocol.Declaration
Swift
@inlinable override public init(retainingOpaquePointer p: OpaquePointer)Parameters
popaque pointer to the underlying object
-
Creates a new empty
GtkComboBox.Declaration
Swift
@inlinable public init() -
Creates a new
GtkComboBoxwith a model.Declaration
Swift
@inlinable public init<TreeModelT>(model: TreeModelT) where TreeModelT : TreeModelProtocol -
Creates a new empty
GtkComboBoxwith an entry and a model.See also [ctor
Gtk.ComboBox.new_with_entry].Declaration
Swift
@inlinable public init<TreeModelT>(modelAndEntry model: TreeModelT) where TreeModelT : TreeModelProtocol -
Creates a new empty
GtkComboBoxwith an entry.In order to use a combo box with entry, you need to tell it which column of the model contains the text for the entry by calling [method
Gtk.ComboBox.set_entry_text_column].Declaration
Swift
@inlinable public static func newWithEntry() -> Widget! -
Creates a new
GtkComboBoxwith a model.Declaration
Swift
@inlinable public static func newWith<TreeModelT>(model: TreeModelT) -> Widget! where TreeModelT : TreeModelProtocol -
Creates a new empty
GtkComboBoxwith an entry and a model.See also [ctor
Gtk.ComboBox.new_with_entry].Declaration
Swift
@inlinable public static func newWith<TreeModelT>(modelAndEntry model: TreeModelT) -> Widget! where TreeModelT : TreeModelProtocol
View on GitHub
Install in Dash
ComboBox Class Reference