Re: Making Glade created ComboBox behave like Gtk2::ComboBox->new_text?
- From: "muppet" <scott asofyet org>
- To: gtk-perl-list gnome org
- Subject: Re: Making Glade created ComboBox behave like Gtk2::ComboBox->new_text?
- Date: Mon, 22 Aug 2005 15:01:27 -0400 (EDT)
Martin Junius said:
Daniel Kasak wrote:
You mean the 'ComboBox' from Gtk-2.2? If so, that's been depreciated for
quite a while. What version of Gtk to do have? If you've got Gtk-2.4 or
higher, you should use a 'ComboBoxEntry'. It allows you to use a
Gtk2::ListStore ( as you're trying to do above ) to store values for
your combo box. I think that's what your problem here is - you're trying
to use an old ComboBox as a ComboBoxEntry.
In my understanding, ComboBoxEntry is just a specialization of ComboBox,
ie a CombBox plus user entry. OptionMenu is deprecated, but ComboBox?
I think he meant GtkCombo, which is the old, deprecated combo box widget.
ComboBox and ComboBoxEntry are the replacements for OptionMenu and Combo.
Meanwhile, I found out that I have to add the following code (cbox is
the widget from Glade):
my $model = new Gtk2::ListStore('Glib::String');
$cbox->clear();
my $renderer = new Gtk2::CellRendererText;
$cbox->pack_start($renderer, FALSE);
$cbox->set_attributes($renderer, text => 0);
$cbox->set_model($model);
Is this the canonical way? The code was shamelessly copied from
examples/combo_box.pl
That's how you set up a ComboBox by hand. It also happens to be how
gtk_combo_box_new_text() sets up the widget.
Then I can use
for ... {
$cbox->append_text($label);
}
This works mostly by accident, because you set up your model the same way that
new_text() does.
append_text() merely does this (in C rather than perl, but):
sub append_text {
my ($combobox, $text) = @_;
my $model = $combobox->get_model;
$model->set ($model->append, 0, $text);
}
--
muppet <scott at asofyet dot org>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]