The Listbox Widget

Create a listbox with the Listbox method. You can then insert items into the listbox using the insert method.

$parentwidget->Listbox (options)

The standard configuration options that apply to Listbox are: -background, -bg, -borderwidth, -bd, -cursor, -exportselection, -font, -foreground, -fg, -height, -highlightbackground, -highlightcolor, -highlightthickness, -relief, -select-background, -selectborderwidth, -selectforeground, -takefocus, -width, -xscroll-command, and -yscrollcommand.

Other options are:

  • -selectmode => mode
  • Determines the number of items that can be selected at once, as well as key/mouse bindings. mode can be any of:
    • single
    • Only one item can be selected at a time.
    • browse
    • Only one item can be selected at a time (default).
    • multiple
    • Multiple items can be selected at a time.
    • extended
    • Multiple items can be selected at a time.
  • -setgrid => boolean
  • Turns on gridding for the listbox. If the widget is resized, only complete lines and characters are displayed. Default is (off).

Listbox Indexes

In a Listbox widget, several indexes are defined to identify positions in the listbox. These are used by the methods that retrieve and manipulate listbox entries.

  • n
  • An integer representing a position in the list, with as the first item.
  • active
  • The item with the keyboard focus.
  • anchor
  • The anchored position.
  • end
  • The last element in the listbox.
  • @x,y
  • The listbox item containing the specified x,y coordinate.

Listbox Methods

In addition to configure and cget, the following methods are supported by Listbox:

  • insert
  • Adds items to a listbox at the specified index. For example, to insert items at the end of a list:
    $listbox->insert('end', "Puerto Rico", "Virgin Islands", "Guam");
    
  • delete
  • Deletes items from a listbox. To delete all items:
    $listbox->delete(0,'end');
    
  • get
  • Returns a list of elements within the specified range of indexes. For a list of all elements:
    @items = $listbox->get(0,'end');
    
  • curselection
  • Returns a list of all currently selected elements in the listbox.
  • activate
  • Sets the specified item to be the active element.
  • bbox
  • Returns the location and dimensions of the bounding box surrounding the specified listbox element. The returned list contains four numbers representing (respectively) the x coordinate of the upper-left corner, the y coordinate of the upper-left corner, the width of the text in pixels, and the height of the text in pixels.
  • index
  • Converts a named index into a numeric one.
  • nearest
  • Gets the index of the listbox item nearest a given y coordinate.
  • see
  • Pages the listbox up or down to display the specified item.
  • selection
  • Manipulates the selected block of list items. The first argument can be any of:
    • anchor
    • Sets the anchor index to the specified index.
    • clear
    • Clears any selected list items in the specified range. For example, to clear all selections:
      $listbox->selection('clear', 0, 'end');
      
    • includes
    • Returns or depending on whether the specified item is already selected:
      $listbox->selection('includes', 'end');
      
    • set
    • Selects a range of items in the listbox:
      $listbox->selection('set', 0, 'end');
      
  • size
  • Returns the total number of items in the listbox.
  • xview
  • Manipulates the text in view. With no arguments, returns a list of two numbers between 0 and 1, defining the portion of the list text that is currently hidden on the left and right sides, respectively. With arguments, the function of xview changes:
    • index
    • If the first argument is an index, that position becomes the leftmost position in view.
    • moveto
    • Moves the specified fraction of the listbox to the left of the visible portion.
    • scroll
    • Scrolls the text left or right by the specified number of units (characters, in this context) or pages. Used primarily as a callback to a scrollbar; pressing on an arrow would move by units (characters), and pressing on the trough would move by pages. The number is either or -1, to move forwards or backwards, respectively.
  • yview
  • Manipulates the text in view. With no arguments, returns a list of two numbers between 0 and 1, defining the portion of the list text that is currently hidden on the top and bottom, respectively. With arguments, the function of yview changes:
    • index
    • If the first argument is an index, that position becomes the topmost position in view.
    • moveto
    • Moves the specified fraction of the listbox to the top of the visible portion.
    • scroll
    • Scrolls the text up or down by the specified number of units (lines, in this context) or pages. Used primarily as a callback to a scrollbar; pressing on an arrow would move by units (lines), and pressing on the trough would move by pages. The number is either or -1, to move forwards or backwards, respectively.