| Next: Gtk2::ComboBoxEntry | Previous: Gtk2::Combo | [Gtk2-Perl - Table of Contents] | [Gtk2-Perl - Index] |
Gtk2::ComboBox - A widget used to choose from a list of items
# the easy way:
$combobox = Gtk2::ComboBox->new_text;
foreach (@strings) {
$combobox->append_text ($_);
}
$combobox->prepend_text ($another_string);
$combobox->insert_text ($index, $yet_another_string);
$combobox->remove_text ($index);
$text = $combobox->get_active_text;
# the full-featured way.
# a combo box that shows stock ids and their images:
use constant ID_COLUMN => 0;
$model = Gtk2::ListStore->new ('Glib::String');
foreach (qw(gtk-ok gtk-cancel gtk-yes gtk-no gtk-save gtk-open)) {
$model->set ($model->append, ID_COLUMN, $_);
}
$combo_box = Gtk2::ComboBox->new ($model);
# to display anything, you must pack cell renderers into
# the combobox, which implements the Gtk2::CellLayout interface.
$renderer = Gtk2::CellRendererPixbuf->new;
$combo_box->pack_start ($renderer, FALSE);
$combo_box->add_attribute ($renderer, stock_id => ID_COLUMN);
$renderer = Gtk2::CellRendererText->new;
$combo_box->pack_start ($renderer, TRUE);
$combo_box->add_attribute ($renderer, text => ID_COLUMN);
# select by index
$combo_box->set_active ($index);
$active_index = $combo_box->get_active;
# or by iter
$combo_box->set_active_iter ($iter);
$active_iter = $combo_box->get_active_iter;
Gtk2::ComboBox is a widget that allows the user to choose from a list of valid choices. The ComboBox displays the selected choice. When activated, the ComboBox displays a popup which allows the user to make a new choice.
Unlike its predecessors Gtk2::Combo and Gtk2::OptionMenu, the Gtk2::ComboBox 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 ComboBox implements the Gtk2::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.
In addition to the model-view API, ComboBox offers a simple API which is
suitable for text-only combo boxes, and hides the complexity of managing the
data in a model. It consists of the methods new_text, append_text,
insert_text, prepend_text, remove_text and get_active_text.
Glib::Object
+----Glib::InitiallyUnowned
+----Gtk2::Object
+----Gtk2::Widget
+----Gtk2::Container
+----Gtk2::Bin
+----Gtk2::ComboBox
Glib::Object::_Unregistered::AtkImplementorIface Gtk2::Buildable Gtk2::CellEditable Gtk2::CellLayout
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.6
Since: gtk+ 2.10
Since: gtk+ 2.10
Since: gtk+ 2.6
'none' / 'GTK_SCROLL_NONE'
'jump' / 'GTK_SCROLL_JUMP'
'step-backward' / 'GTK_SCROLL_STEP_BACKWARD'
'step-forward' / 'GTK_SCROLL_STEP_FORWARD'
'page-backward' / 'GTK_SCROLL_PAGE_BACKWARD'
'page-forward' / 'GTK_SCROLL_PAGE_FORWARD'
'step-up' / 'GTK_SCROLL_STEP_UP'
'step-down' / 'GTK_SCROLL_STEP_DOWN'
'page-up' / 'GTK_SCROLL_PAGE_UP'
'page-down' / 'GTK_SCROLL_PAGE_DOWN'
'step-left' / 'GTK_SCROLL_STEP_LEFT'
'step-right' / 'GTK_SCROLL_STEP_RIGHT'
'page-left' / 'GTK_SCROLL_PAGE_LEFT'
'page-right' / 'GTK_SCROLL_PAGE_RIGHT'
'start' / 'GTK_SCROLL_START'
'end' / 'GTK_SCROLL_END'
Copyright (C) 2003-2008 by the gtk2-perl team.
This software is licensed under the LGPL. See Gtk2 for a full notice.