Creating and Filling a Listbox
To create a Listbox widget, use the Listbox method
on the parent of the Listbox:
$lb = $parent->Listbox( [ options ...] )->pack;
The
Listbox method returns a reference to the Listbox
that you’ve created. You can now use this reference to
configure the Listbox, insert items into the Listbox, and so on.
After creating a Listbox, use the insert method to
insert items into it:
$lb->insert('end', @listbox_items);
# or...
$lb->insert('end', $item1, $item2, $item3);
The insert
method takes an index value as the first argument; the rest of the
arguments will be considered items to put into the Listbox. Listbox
indexes are similar to the Entry widget indexes except they refer to
lines instead of individual characters.
We could use a Listbox instead of Radiobuttons to select our window background color (see Chapter 4 for the Radiobutton example). The Listbox code looks like this:
$lb = $mw->Listbox(-selectmode => "single")->pack( );
$lb->insert('end', qw/red yellow green blue grey/);
$lb->bind('<Button-1>',
sub { $lb->configure(-background =>
$lb->get($lb->curselection( )) );
});
The
-selectmode option limits the number of selections
to one. We insert some colors from which to
choose. There is no -command option for a Listbox,
so we use bind (see Chapter 15)
to make something happen when the user clicks on an item with the
left mouse button. Using the Listbox methods get
and curselection, we determine which item the user clicked on and then set the background ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access