http://qs321.pair.com?node_id=11104587


in reply to How to printout a Gtk2::ComboBox

It's slightly more complicated: you have to use the foreach method of the model to iterate on its rows, supply a callback to it, in which you use the Gtk2::TreeIter to get the value out of each row.

Working example:

#! /usr/bin/perl use strict; use warnings; use feature qw/say/; use Gtk2 -init; my $window = Gtk2::Window->new ('toplevel'); $window->signal_connect (delete_event => sub { Gtk2->main_quit }); my $vbox = Gtk2::VBox->new(); $window->set_size_request (130, 100); $window->add($vbox); my $combo = Gtk2::ComboBox->new_text(); foreach (qw/foo bar baz/) { $combo->append_text ($_); } $vbox->pack_start($combo, 0, 0, 5); # expand?, fill?, padding my $button = Gtk2::Button->new ('extract'); $button->signal_connect (clicked => \&extract); $vbox->pack_start($button, 1,1,5); $window->show_all; Gtk2->main; sub extract { my $active_text = $combo->get_active_text(); print "active text: $active_text\n"; print "all rows:\n"; my $model = $combo->get_model(); $model->foreach(sub { my ($store, $path, $iter) = @_; my $value = $model->get_value($iter, 0); # assuming there is o +ne column only in the model print $value."\n"; return 0; }); }

Documentation: http://gtk2-perl.sourceforge.net/doc/pod/Gtk2/ComboBox.html - warning: it's autogenerated and obsolete.