home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam    

Book HomeMastering Perl/TkSearch this book

18.3. The TList Widget

The TList widget is very similar to a Listbox, because it displays a list of things. The Listbox is limited to displaying lists of text strings. The TList widget can display any item type, and each item can be a different color and/or font. One of the most common questions asked about a Listbox is whether it can display different color items. The answer to that is no, but a TList can. The TList can also handle displaying multiple columns of items.

When you create a TList, you specify options just as you would when creating any other widget. These options are completely standard and behave as expected: -background, -borderwidth, -class, -command, -cursor, -foreground, -font, -height, -highlightcolor, -highlightthickness, -padx, -pady, -relief, -selectbackground, -selectborderwidth, -selectforeground, -selectmode, -state, -xscrollcommand, -yscrollcommand, and -width.

The following options are specific to a TList widget:

-browsecmd => callback
The callback is called when the user browses through the entries in the TList. Use -command if you want to invoke a callback when a user selects an item in the TList.

-itemtype => 'text' | 'imagetext' | 'image' | 'window'
The default item type to use for the TList. This allows you to call insert without specifying an item type, as it will use the one specified here.

-orient => 'vertical' | 'horizontal'
A TList will create columns if it can't fit everything in the first column. This option specifies if the items are displayed from top to bottom, go to the next column ('vertical'), or if items are displayed right to left, move down ('horizontal').

-sizecmd => callback
This callback will be invoked whenever the TList size changes.

To see how the TList looks different from a Listbox, take a look at Figure 18-4.

Figure 18-4

Figure 18-4. A TList showing the 'vertical' orientation

Scrollbars don't work quite as expected with a TList because of the automatic column feature. When using a vertical orientation on a TList, a horizontal scrollbar will work just fine, but a vertical one will never do anything because the TList wraps to the next column based on the current height of the window, regardless of whether there is a vertical scrollbar.

Library Navigation Links

Copyright © 2002 O'Reilly & Associates. All rights reserved.