tablelist::tablelist - Create and manipulate tablelist
widgets
tablelist::tablelist pathName ?options?
-borderwidth -highlightthickness -setgrid -cursor -relief -xscrollcommand -exportselection -selectbackground -yscrollcommand -highlightbackground -selectborderwidth -highlightcolor -selectforeground
-background -disabledforeground -font -foreground
-activestyle
frame|none|underline
-arrowcolor
color
-arrowdisabledcolor
color
-columns
{width title
?left|right|center? \
?width title
?left|right|center? ...?}
-editendcommand
command
-editstartcommand
command
-forceeditendcommand
boolean
-height
lines
-incrarrowtype
up|down
-labelbackground
color or -labelbg
color
-labelborderwidth
pixels or -labelbd
pixels
-labelcommand
command
-labeldisabledforeground
color
-labelfont
font
-labelforeground
color or -labelfg
color
-labelheight
lines
-labelpady
pixels
-labelrelief
raised|sunken|flat|ridge|solid|groove
-listvariable
variable
-movablecolumns
boolean
-movablerows
boolean
-movecolumncursor
cursor
-movecursor
cursor
-resizablecolumns
boolean
-resizecursor
cursor
-selectmode
mode
(single|browse|multiple|extended)
-selecttype
row|cell
-showarrow
boolean
-showlabels
boolean
-showseparators
boolean
-snipstring
string
-sortcommand
command
-state
normal|disabled
-stretch
all|columnIndexList
-stripebackground
color or -stripebg
color
-stripeforeground
color or -stripefg
color
-stripeheight
lines
-takefocus
0|1|""|command
-targetcolor
color
-titlecolumns
number
-width
characters
-align
left|right|center
-background
color or -bg color
-editable
boolean
-editwindow
name
-font
font
-foreground
color or -fg color
-formatcommand
command
-hide
boolean
-labelalign
left|right|center
-labelbackground
color or -labelbg
color
-labelborderwidth
pixels or -labelbd
pixels
-labelcommand
command
-labelfont
font
-labelforeground
color or -labelfg
color
-labelheight
lines
-labelimage
image
-labelpady
pixels
-labelrelief
raised|sunken|flat|ridge|solid|groove
-maxwidth
width
-name
name
-resizable
boolean
-selectbackground
color
-selectforeground
color
-showarrow
boolean
-sortcommand
command
-sortmode
ascii|command|dictionary|integer|real
-text
list
-title
title
-width
width
-background
color or -bg color
-font
font
-foreground
color or -fg color
-selectable
boolean
-selectbackground
color
-selectforeground
color
-text
list
-background
color or -bg color
-editable
boolean
-editwindow
name
-font
font
-foreground
color or -fg color
-image
image
-window
command
-selectbackground
color
-selectforeground
color
-text
text
number knumber active anchor end @x,y
number active anchor end @x,y name
row,col active anchor end @x,y row : number knumber active anchor end col : number active anchor end name
pathName activate
index
pathName activatecell
cellIndex
pathName attrib
?name? ?value name value ...?
pathName bbox
index
pathName bodypath
pathName bodytag
pathName
cancelediting
pathName cellcget
cellIndex option
pathName cellconfigure
cellIndex ?option? ?value option
value ...?
pathName cellindex
cellIndex
pathName cellselection
option args
pathName cellselection anchor
cellIndex
pathName cellselection clear
firstCell lastCell
pathName cellselection clear
cellIndexList
pathName cellselection includes
cellIndex
pathName cellselection set
firstCell lastCell
pathName cellselection set
cellIndexList
pathName cget
option
pathName columncget
columnIndex option
pathName
columnconfigure
columnIndex ?option? ?value option
value ...?
pathName columncount
pathName columnindex
columnIndex
pathName configure
?option? ?value option value ...?
pathName containing
y
pathName containingcell x y
pathName containingcolumn x
pathName curcellselection
pathName curselection
pathName delete
first lastpathName delete
indexList
pathName deletecolumns
firstColumn lastColumnpathName deletecolumns
columnIndexList
pathName editcell
cellIndex
pathName editwinpath
pathName entrypath
pathName fillcolumn
columnIndex text
pathName finishediting
pathName get
first lastpathName get
indexList
pathName getcells
firstCell lastCellpathName getcells
cellIndexList
pathName getcolumns
firstColumn lastColumnpathName getcolumns
columnIndexList
pathName getkeys
first lastpathName getkeys
indexList
pathName index
index
pathName insert
index ?item item ...?
pathName insertcolumnlist
columnIndex {width title
?left|right|center? \
?width title
?left|right|center? ...?}
pathName insertcolumns
columnIndex ?width title
?left|right|center? \
width title
?left|right|center? ...?
pathName insertlist
index itemList
pathName itemlistvar
pathName labelpath
columnIndex
pathName labels
pathName move
source target
pathName movecolumn
sourceColumn targetColumn
pathName nearest
y
pathName nearestcell
x y
pathName nearestcolumn
x
pathName rejectinput
pathName resetsortinfo
pathName rowcget
index option
pathName rowconfigure
index ?option? ?value option
value ...?
pathName scan
mark|dragto x y
pathName see
index
pathName seecell
cellIndex
pathName seecolumn
columnIndex
pathName selection
option args
pathName selection anchor
index
pathName selection clear
first last
pathName selection clear
indexList
pathName selection includes
index
pathName selection set
first last
pathName selection set
indexList
pathName separatorpath
?columnIndex?
pathName separators
pathName size
pathName sort
?-increasing|-decreasing?
pathName sortbycolumn
columnIndex ?-increasing|-decreasing?
pathName sortcolumn
pathName sortorder
pathName togglevisibility
firstColumn lastColumnpathName togglevisibility
columnIndexList
pathName windowpath
cellIndex
pathName xview
args
pathName xview
pathName xview units
pathName xview moveto
fraction
pathName xview scroll
number what
pathName yview
args
pathName yview
pathName yview index
pathName yview moveto
fraction
pathName yview scroll
number what
tablelist::tablelist - Create and manipulate tablelist
widgets
tablelist::tablelist pathName ?options?
-borderwidth -highlightthickness -setgrid -cursor -relief -xscrollcommand -exportselection -selectbackground -yscrollcommand -highlightbackground -selectborderwidth -highlightcolor -selectforeground
-highlightbackground,
-highlightcolor, and
-highlightthickness options are only supported by
the Tablelist package, but not by Tablelist_tile.
-background -disabledforeground -font -foreground
| Command-Line Name: | -activestyle
|
| Database Name: | activeStyle
|
| Database Class: | ActiveStyle
|
Specifies how to diplay the active item or element (depending on the value of the
-selecttypeconfiguration option) when the tablelist has the keyboard focus. The allowed values areframe,none, andunderline. The valueframemakes the active item or element appear surrounded with a thin frame, which looks nice when applied to the active element, and also when displaying the active item if all of its cells have the same background color. It looks less pretty when applied to the active item if the background color of some of its cells was changed by using thecolumnconfigureorcellconfigurewidget command. The valuenonespecifies that no special indication of the active item or element is to be performed. The default isunderline, which produces the same visual effect as in the case of the Tk core listbox.
| Command-Line Name: | -arrowcolor
|
| Database Name: | arrowColor
|
| Database Class: | ArrowColor
|
Specifies the color to use for the up- or down-arrow placed into a column label by the
sortbycolumnsubcommand of the Tcl command associated with the widget. This option is only relevant if the value of the-showarrowoption is true. The default value is an empty string, indicating that the arrow will inherit the background color of the label in which it is placed (but is distinguishable from the latter, due to its 3-D border and sunken relief).
| Command-Line Name: | -arrowdisabledcolor
|
| Database Name: | arrowDisabledColor
|
| Database Class: | ArrowDisabledColor
|
Specifies the color to use for the up- or down-arrow placed into a column label by the
sortbycolumnsubcommand of the Tcl command associated with the widget when the tablelist'sstateisdisabled. This option is only relevant if the value of the-showarrowoption is true. The default value is an empty string, indicating that the arrow will inherit the background color of the label in which it is placed (but is distinguishable from the latter, due to its 3-D border and sunken relief).
| Command-Line Name: | -columns
|
| Database Name: | columns
|
| Database Class: | Columns
|
Specifies the widths, titles, and alignments of the columns. The option's value must be a list of the form
width title ?alignment? width title ?alignment? ...Each
widthmust be a number. A positive value specifies the column's width in average-size characters of the widget's font. Ifwidthis negative, its absolute value is interpreted as a column width in pixels. Finally, a value of zero specifies that the column's width is to be made just large enough to hold all the elements in the column, including its header (but no larger than the maximum width indicated by the-maxwidthcolumn configuration option). In all three cases, the effective column width will be somewhat greater because of the margins created automatically to the left and right of the column.Each
titlespecifies the text to be displayed in the column's header, and may optionally be followed in the next list element by analignment, which specifies how to align the elements of the column. Eachalignmentmust be one ofleft,right, orcenter. The default isleft. Thealignmentalso refers to the column's title as long as the-labelalignoption hasn't been specified for that column, or if its value is an empty string.The default value of this option is an empty list, specifying that initially the widget has no columns.
| Command-Line Name: | -editendcommand
|
| Database Name: | editEndCommand
|
| Database Class: | EditEndCommand
|
Specifies a Tcl command to be invoked on normal termination of the interactive editing of a cell's contents if the final text of the temporary embedded widget used for the editing is different from its initial one. The command is automatically concatenated with the name of the tablelist widget, the cell's row and column indices, as well as the final contents of the edit window, the resulting script is evaluated in the global scope, and the return value becomes the cell's new contents after destroying the temporary embedded widget. The main purpose of this script is to perform a final validation of the edit window's contents. See the description of the
-forceeditendcommandoption for more about the invocation of the command mentioned above, as well as the INTERACTIVE CELL EDITING section for details on the editing process.
| Command-Line Name: | -editstartcommand
|
| Database Name: | editStartCommand
|
| Database Class: | EditStartCommand
|
Specifies a Tcl command to be invoked when the interactive editing of a cell's contents is started. The command is automatically concatenated with the name of the tablelist widget, the cell's row and column indices, as well as the text displayed in the cell, the resulting script is evaluated in the global scope, and the return value becomes the initial contents of the temporary embedded widget used for the editing. The main purpose of this script is to define validations for the edit window's contents. See the INTERACTIVE CELL EDITING section for details on the editing process.
| Command-Line Name: | -forceeditendcommand
|
| Database Name: | forceEditEndCommand
|
| Database Class: | ForceEditEndCommand
|
Specifies a boolean value that controls the invocation of the command given by the the
-editendcommandoption. If this value is true then the command will be invoked on normal termination of the editing process even if the final text of the temporary embedded widget used for the editing equals its initial one, and will also be invoked when the interactive cell editing is canceled (in the latter case, the text passed to it as last argument will be the cell's original contents, not its final one). The default value of this option is0, meaning that the command will only be invoked on normal termination of the editing process, if the final text of the temporary embedded widget is different from its initial one. See the INTERACTIVE CELL EDITING section for details on the editing process.Setting this option to true enables you to execute an arbitrary action whenever the interactive cell editing is finished. Just binding a script to the
<Destroy>event for the temporary embedded widget used for the editing won't work, because that widget might be destroyed and recreated automatically under various circumstances. Alternately, you can use the<<TablelistCellUpdated>>and<<TablelistCellRestored>>virtual events, generated by thefinisheditingandcanceleditingsubcommands, respectively.
| Command-Line Name: | -height
|
| Database Name: | height
|
| Database Class: | Height
|
Specifies the desired height for the window, in lines. If zero or less then the desired height for the window is made just large enough to hold the header and all the items in the tablelist widget.
| Command-Line Name: | -incrarrowtype
|
| Database Name: | incrArrowType
|
| Database Class: | IncrArrowType
|
Specifies the type of the arrow placed into a column label when invoking the
sortbycolumnsubcommand of the Tcl command associated with the widget, with-increasingas second argument. The value of this option must be one ofupordown. The default isup. This option is only relevant if the value of the-showarrowoption is true.
| Command-Line Name: | -labelbackground or
-labelbg
|
| Database Name: | labelBackground
|
| Database Class: | Background
|
Specifies the
-backgroundoption for the header labels.
| Command-Line Name: | -labelborderwidth or
-labelbd
|
| Database Name: | labelBorderWidth
|
| Database Class: | BorderWidth
|
Specifies the
-borderwidthoption for the header labels. This option is different from the standard-borderwidthoption defined for the tablelist widget itself.
| Command-Line Name: | -labelcommand
|
| Database Name: | labelCommand
|
| Database Class: | LabelCommand
|
Specifies the Tcl command to be invoked when mouse button 1 is pressed over one of the header labels and later released over the same label. When the
<ButtonRelease-1>event occurs, the command is automatically concatenated with the name of the tablelist widget and the column index of the respective label, and the resulting script is evaluated in the global scope. If the tablelist'sstateisdisabledthen this action will not take place. The most common value of this option istablelist::sortByColumn; this command sorts the items based on the column whose index was passed to it as second argument.
| Command-Line Name: | -labeldisabledforeground
|
| Database Name: | labelDisabledForeground
|
| Database Class: | DisabledForeground
|
Specifies the
-disabledforegroundoption for the header labels, i.e., the foreground color to use for the labels when the tablelist'sstateisdisabled. This option is only defined in the Tablelist package, if the Tk version being used supports the-stateand-disabledforegroundoptions for label widgets. This is checked by Tablelist at initialization time, and will normally be the case for Tk versions 8.3.1 or higher. On the other hand, the Tablelist_tile package doesn't support the-labeldisabledforegroundoption.
| Command-Line Name: | -labelfont
|
| Database Name: | labelFont
|
| Database Class: | Font
|
Specifies the
-fontoption for the header labels.
| Command-Line Name: | -labelforeground or
-labelfg
|
| Database Name: | labelForeground
|
| Database Class: | Foreground
|
Specifies the
-foregroundoption for the header labels.
| Command-Line Name: | -labelheight
|
| Database Name: | labelHeight
|
| Database Class: | Height
|
Specifies the
-heightoption for the header labels. This option is only supported by the Tablelist package, but not by Tablelist_tile.
| Command-Line Name: | -labelpady
|
| Database Name: | labelPadY
|
| Database Class: | Pad
|
In the Tablelist package this option specifies the
-padyconfiguration option for the header labels. In the Tablelist_tile package the value of the-labelpadyoption is mapped to the corresponding components of the value of the-paddingconfiguration option of the header labels.
| Command-Line Name: | -labelrelief
|
| Database Name: | labelRelief
|
| Database Class: | Relief
|
Specifies the
-reliefoption for the header labels. This option is different from the standard-reliefoption defined for the tablelist widget itself.
| Command-Line Name: | -listvariable
|
| Database Name: | listVariable
|
| Database Class: | Variable
|
Specifies the name of a variable. The value of the variable is a list to be displayed inside the widget; if the variable value changes then the widget will automatically update itself to reflect the new value. The value of the variable must be a valid list. Each list element corresponds to a row within the widget, and must be a valid list itself; its elements correspond to the cells within the respective row. Attempts to assign a variable whose value does not fulfil these conditions to
-listvariablewill cause an error. Attempts to unset a variable in use as a-listvariablewill fail but will not generate an error.
| Command-Line Name: | -movablecolumns
|
| Database Name: | movableColumns
|
| Database Class: | MovableColumns
|
Specifies a boolean value that determines whether the columns can be moved interactively. See the DEFAULT BINDINGS FOR THE HEADER LABELS section below for information on moving a column interactively. The default value is
0.
| Command-Line Name: | -movablerows
|
| Database Name: | movableRows
|
| Database Class: | MovableRows
|
Specifies a boolean value that determines whether the rows can be moved interactively. See the DEFAULT AND INDIVIDUAL BINDINGS FOR THE TABLELIST BODY section below for information on moving a row interactively. The default value is
0.
| Command-Line Name: | -movecolumncursor
|
| Database Name: | moveColumnCursor
|
| Database Class: | MoveColumnCursor
|
Specifies the mouse cursor to be used when moving a column interactively. The default value is
icon.
| Command-Line Name: | -movecursor
|
| Database Name: | moveCursor
|
| Database Class: | MoveCursor
|
Specifies the mouse cursor to be used when moving a row interactively. The default value is
hand2.
| Command-Line Name: | -resizablecolumns
|
| Database Name: | resizableColumns
|
| Database Class: | ResizableColumns
|
Specifies a boolean value that determines whether the columns can be resized interactively. See the DEFAULT BINDINGS FOR THE HEADER LABELS section below for information on interactive column resizing. The default value is
1.
| Command-Line Name: | -resizecursor
|
| Database Name: | resizeCursor
|
| Database Class: | ResizeCursor
|
Specifies the mouse cursor to be used during interactive column resizing. The default value is
sb_h_double_arrow.
| Command-Line Name: | -selectmode
|
| Database Name: | selectMode
|
| Database Class: | SelectMode
|
Specifies one of several styles for manipulating the selection. The value of the option may be arbitrary, but the default bindings expect it to be either
single,browse,multiple, orextended. The default value isbrowse.
| Command-Line Name: | -selecttype
|
| Database Name: | selectType
|
| Database Class: | SelectType
|
Specifies one of two selection types for the tablelist widget:
roworcell. If the selection type isrowthen the default bindings will select and deselect entire items, and the whole row having the location cursor will be displayed as active when the tablelist has the keyboard focus. If the selection type iscellthen the default bindings will select and deselect individual elements, and the single cell having the location cursor will be displayed as active when the tablelist has the keyboard focus. The default value isrow.
| Command-Line Name: | -showarrow
|
| Database Name: | showArrow
|
| Database Class: | ShowArrow
|
Specifies a boolean value that determines whether the
sortbycolumnsubcommand of the Tcl command associated with the widget should place an arrow indicating the sorting order into the header label of the column specified by its first argument. The default value is1.
| Command-Line Name: | -showlabels
|
| Database Name: | showLabels
|
| Database Class: | ShowLabels
|
Specifies a boolean value that determines whether the header labels are to be shown or not. The default value is
1.
| Command-Line Name: | -showseparators
|
| Database Name: | showSeparators
|
| Database Class: | ShowSeparators
|
Specifies a boolean value that determines whether the columns are to be separated with borders. The default value is
0. The separators are implemented as thin frame widgets with sunken relief, attached to the right edges of the header labels. They are only created if the value of this option is true. There is no support for horizontal separators in tablelist widgets, but a nice distinguishing effect for the rows can be achieved with the aid of the-stripebackgroundoption discussed below.
| Command-Line Name: | -snipstring
|
| Database Name: | snipString
|
| Database Class: | SnipString
|
Specifies the string to be used as snip indicator when displaying the elements that don't fit into their cells. The default is an ellipsis (
"...").
| Command-Line Name: | -sortcommand
|
| Database Name: | sortCommand
|
| Database Class: | SortCommand
|
Specifies a command to be used for the comparison of the items when invoking the
sortsubcommand of the Tcl command associated with the tablelist widget. To compare two items (viewed as lists of cell contents within one row each) during thesortoperation, the command is automatically concatenated with the two items and the resulting script is evaluated. The script should return an integer less than, equal to, or greater than zero if the first item is to be considered less than, equal to, or greater than the second, respectively.
| Command-Line Name: | -state
|
| Database Name: | state
|
| Database Class: | State
|
Specifies one of two states for the tablelist widget:
normalordisabled. If the widget is disabled then neither items nor columns may be inserted, deleted, updated, or moved, the items, header labels, and the up- or down-arrow are drawn in the-disabledforeground,-labeldisabledforeground, and-arrowdisabledcolorcolor, respectively, the location of the active item or element and the selection cannot be modified and are not shown (although the corresponding information is retained), the header labels are completely insensitive, and no interactive cell editing can be performed.
| Command-Line Name: | -stretch
|
| Database Name: | stretch
|
| Database Class: | Stretch
|
Specifies the columns to be stretched in order to fill the tablelist window if necessary. The option's value may be
allor a list of column indices in any of the forms described in the COLUMN INDICES section below. In the second case, the specified column indices are replaced with their numerical equivalents, except for the indexend, which is viewed as a dynamic column index whose numerical equivalent might change during program execution and therefore will be recomputed every time the columns are stretched. The list will be updated automatically whenever columns are inserted, deleted, or moved. The number of pixels by which a column is stretched is proportional to its width in pixels. The default value of this option is an empty list, meaning that no column will be stretched to eliminate the blank space that might appear at the right of the table. (Note that the blank space following the header labels is filled with a dummy, insensitive label having the same background, borderwidth, and relief as the "normal" header labels.) This option is ignored if the value of the-widthconfiguration option is zero or less.
| Command-Line Name: | -stripebackground or
-stripebg
|
| Database Name: | stripeBackground
|
| Database Class: | Background
|
Specifies the background color to use when displaying the items belonging to a stripe. Each stripe is composed of the same number
stripeHeightof consecutive items, according to the value of the-stripeheightconfiguration option. The firststripeHeightitems are "normal" ones; they are followed by a stripe composed of the nextstripeHeightitems, which in turn is followed by the same number of "normal" items, and so on. The default value is an empty string, indicating that the stripes will inherit the background color specified by the-backgroundconfiguration option. The-stripebackgroundoption has a higher priority than the-backgroundcolumn configuration option, but a lower priority than the-backgroundoption specified at row or cell level.
| Command-Line Name: | -stripeforeground or
-stripefg
|
| Database Name: | stripeForeground
|
| Database Class: | Foreground
|
Specifies the foreground color to use when displaying the items belonging to a stripe. Each stripe is composed of the same number
stripeHeightof consecutive items, according to the value of the-stripeheightconfiguration option. The firststripeHeightitems are "normal" ones; they are followed by a stripe composed of the nextstripeHeightitems, which in turn is followed by the same number of "normal" items, and so on. The default value is an empty string, indicating that the stripes will inherit the foreground color specified by the-foregroundconfiguration option. The-stripeforegroundoption has a higher priority than the-foregroundcolumn configuration option, but a lower priority than the-foregroundoption specified at row or cell level.
| Command-Line Name: | -stripeheight
|
| Database Name: | stripeHeight
|
| Database Class: | StripeHeight
|
Specifies the number of items in each stripe. If zero or less then no stripes are displayed. The default is
1.
| Command-Line Name: | -takefocus
|
| Database Name: | takeFocus
|
| Database Class: | TakeFocus
|
This option determines whether the widget accepts the focus during keyboard traversal. It is almost identical to the standard option with the same name (see the options manual entry for details). The only difference is that not the widget itself but its body child (containing the items) will receive the focus during keyboard traversal with the standard keys (
TabandShift-Tab).
| Command-Line Name: | -targetcolor
|
| Database Name: | targetColor
|
| Database Class: | TargetColor
|
Specifies the color of the temporary gap displayed in the tablelist's body or header to indicate the target position when moving a row or column interactively. The default value is
black.
| Command-Line Name: | -titlecolumns
|
| Database Name: | titleColumns
|
| Database Class: | TitleColumns
|
Specifies the number of the non-scrollable columns at the left edge of the window, also called title columns. The positions of these columns will not change when adjusting the horizontal view by invoking the
scan,seecell,seecolumn, orxviewsubcommand. The default value is0. The value of this option also determines the scrolling unit used by the commands mentioned above when shifting the horizontal view: if it is positive then the horizontal scrolling is performed column-wise, otherwise by character units (the width of the0character).The end of the title column area is visualized with the aid of a separator frame attached to the right edge of the header label corresponding to the last non-hidden title column. This special separator is always displayed to mark the end of the title columns (if any), independently of the value of the
-showseparatorsoption. The user can easily distinguish it from the other separators by means of its background color, which is different from that of the other separator frames.For technical reasons (the use of the
-elideoption for a text widget tag), this option is not supported for Tk versions earlier than 8.3.
| Command-Line Name: | -width
|
| Database Name: | width
|
| Database Class: | Width
|
Specifies the desired width for the window, in average-size characters of the widget's font. If zero or less then the desired width for the window is made just large enough to hold all the columns in the tablelist widget.
tablelist::tablelist command creates a new
window named pathName and of the class
Tablelist, and makes it into a tablelist
widget. Additional options, described above, may be specified on
the command line or in the option database to configure aspects of the
tablelist such as its colors, font, and columns. The
tablelist::tablelist command returns its
pathName argument. At the time this command
is invoked, there must not exist a window named
pathName, but pathName's parent
must exist.
-exportselection option), then it will observe
the standard X11 protocols for handling the selection. Tablelist
widget selections are available as types STRING and
UTF8_STRING; the value of the selection will be a
text built by taking all of the rows having at least one non-hidden
selected element, joining these elements together with tabs, and the
resulting strings in turn with newlines. If a tablelist widget
that is exporting its selection is the selection owner and some other
window claims ownership of the selection away from it, then the virtual
event <<TablelistSelectionLost>> is
generated.
-xscrollcommand and
-yscrollcommand options. They also support
scanning, as described below.
-background,
-font, -foreground,
-selectbackground, and
-selectforeground options can also be specified at
column, row, and cell level, by using the columnconfigure, rowconfigure, and cellconfigure subcommands of the Tcl
command associated with the tablelist widget. For this reason, a
particular cell can have up to four values for one and the same color
or font option. If these values conflict, then the option
specified at the highest priority level is used. The decreasing
priority order is cell, row, column, widget.
If one of these options hasn't been specified at cell, row, or column level, or if its value for that level is an empty string (this is explicitly allowed), then that option will not be used at that particular level.
columncget and
columnconfigure
commands:
-align alignment
left, right, or
center. This option also refers to the
column's title if the -labelalign option hasn't been
specified for the given column, or if its value is an empty
string. The -align option is tied to
the alignment element corresponding to this
column in the list specifying the value of the -columns option for the tablelist
widget; changes in either will automatically be reflected in the
other.
-background color or
-bg color
-editable boolean
0.
The value of this option can be overridden for individual cells
by using the cell configuration option with the same name.
-editwindow name
name may be one of
entry (which is the default),
spinbox (for Tk version 8.4 or higher),
checkbutton, ttk::entry,
ttk::combobox, or
ttk::checkbutton (the latter three only in
the presence of the tile widget engine), or the value returned by
one of the registration commands for widgets from the packages
BWidget,
Iwidgets,
combobox (by Bryan Oakley),
and Mentry. For example,
you can use -editwindow ComboBox
after registering the ComboBox widget for interactive cell
editing with the aid of the tablelist::addBWidgetComboBox
command. Similarly, you can use -editwindow
combobox after registering Bryan Oakley's
combobox widget for interactive cell editing by invoking the
tablelist::addOakleyCombobox
command.
-font font
-foreground color or
-fg color
-formatcommand command
command is a nonempty string, then it is
automatically concatenated with the cell's text, the resulting
script is evaluated in the global scope, and the return value is
displayed in the cell or added to the selection instead of the
original data. For example, if a time value in seconds is
being inserted into the cell and command is
the procedure formatDate defined as
proc formatDate clockVal { return [clock format $clockVal -format "%Y-%m-%d"] }
then the text displayed in the cell will be the date in the
specified format, not the time value in seconds. Notice
that this option is only used for preparing the text to be
displayed or returned when exporting the selection, and does not
affect the internal cell contents. For example, the
get,
getcolumns,
getcells,
rowcget,
cellcget,
sort, and
sortbycolumn
subcommands all operate on the original cell text, which is
contained in the widget's internal list. In the case of the
above example, this will make it possible to sort the items very
easily by time, with a second's precision, even if their visual
representation only contains the year, month, and day.
The -formatcommand option comes in handy
if only images or embedded windows are to be displayed in a
column but the texts associated with the cells may not simply be
empty strings because they are needed for other purposes (like
sorting or editing). In such cases, a procedure returning
an empty string can be used as the option's value, thus making
sure that the textual information contained in that column
remains hidden.
-hide boolean
0.
-labelalign alignment
left, right, or
center, or an empty string. If this
option hasn't been specified for the given column, or if its
value is an empty string, then the header title will have the
same alignment as the elements of the column, as given by the
-align column
configuration option or by the alignment
element corresponding to this column in the list specifying the
value of the -columns
global option.
-labelbackground color or
-labelbg color-labelborderwidth pixels or
-labelbd pixels-labelcommand command-labelfont fontName-labelforeground color or
-labelfg color-labelheight lines-labelpady pixels-labelrelief relief
-labeldisabledforeground
option is only defined at widget level; there is no column
configuration option with this name. The
-labelheight option is only supported by
the Tablelist package, but not by Tablelist_tile.
-labelimage image
image must be the result of an
invocation of the image create
command, or an empty string, specifying that no image is to be
displayed. If the label's text is right-aligned then the
image will be displayed to the right of the text, otherwise to
its left. The text and the image are separated from each
other by a gap corresponding to the width of a space character in
the given label's font.
-maxwidth width
width must be a number. A positive
value specifies the column's maximum width in average-size
characters of the widget's font. If
width is negative, its absolute value is
interpreted as a maximum column width in pixels. Finally, a
value of zero (which is the default) specifies that the column's
maximum width is to be made just large enough to hold all the
elements in the column, including its header. This option
is only relevant if the given column has dynamic width, i.e., if
its width was set to 0.
-name name
row,col, as
described in the CELL INDICES
section. To avoid ambiguities, column names should be
different from any other forms of column indices (like numbers,
active, anchor,
end, or any of their abbreviations).
They should also be different from (any abbreviations of) the
string all, which may be specified as the
value of the -stretch
configuration option. The default value is an empty string.
-resizable boolean
1. This
option is only relevant if the value of the -resizablecolumns widget
configuration option is true.
-selectbackground color
-selectforeground color
-showarrow boolean
sortbycolumn command with the
given column index as first argument should place an arrow
indicating the sorting order into the column's label. The
default value is 1. This option is only
relevant if the value of the -showarrow widget configuration
option is true.
-sortcommand command
-sortmode option for the
given column is command. It specifies a
command to be used for the comparison of the column's elements
when invoking the sortbycolumn command with the
given column index as first argument. To compare two
elements during the sortbycolumn operation,
command is automatically concatenated with
the two elements and the resulting script is evaluated. The
script should return an integer less than, equal to, or greater
than zero if the first element is to be considered less than,
equal to, or greater than the second, respectively.
-sortmode mode
sortbycolumn
command with the given column index as first argument.
mode may have any of the following values:
ascii
| Use string comparison with ASCII collation order.
This is the default. |
command
| Use the command specified by the -sortcommand column
configuration option to compare the column's
elements. |
dictionary
| Use dictionary-style comparison. This is the same
as ascii, except: (a) case is ignored
except as a tie-breaker; (b) if two strings contain
embedded numbers, the numbers compare as integers, not
characters. For example, bigBoy sorts
between bigbang and bigboy, and
x10y sorts between x9y and
x11y. |
integer
| Convert the elements to integers and use integer
comparison. |
real
| Convert the elements to floating-point values and use floating-point comparison. |
-text list
state is disabled
then this option will be ignored.
-title title
title element
corresponding to the given column in the list specifying the
value of the -columns
option for the tablelist widget; changes in either will
automatically be reflected in the other.
-width width
width must be a number. A positive
value specifies the column's width in average-size characters of
the widget's font. If width is
negative, its absolute value is interpreted as a column width in
pixels. Finally, a value of zero specifies that the
column's width is to be made just large enough to hold all the
elements in the column, including its header (but no larger than
the maximum width indicated by the -maxwidth column configuration
option). This option is tied to the
width element corresponding to the given
column in the list specifying the value of the -columns option for the tablelist
widget; changes in either will automatically be reflected in the
other.
-background,
-font, -foreground,
-selectbackground, and
-selectforeground column configuration options
override the options with the same names set at widget level (but
not the ones set at cell or row level) if the specified value is
not an empty string. See the COLORS AND FONTS section for further
details on these options.
rowcget and
rowconfigure
commands:
-background color or
-bg color
-font font
-foreground color or
-fg color
-selectable boolean
1. If the
value 0 was given then any attempt to select the
item contained in this row with the aid of the
selection set
widget command or any of its elements by using the
cellselection
set command will be silently ignored;
moreover, an existing old (cell) selection is removed from the
row.
-selectbackground color
-selectforeground color
-text list
state is
disabled then this option will be ignored.
-background, -font,
-foreground,
-selectbackground, and
-selectforeground row configuration options
override the options with the same names set at column or widget
level (but not the ones set at cell level) if the specified value
is not an empty string. See the COLORS AND FONTS section for further
details on these options.
cellcget and
cellconfigure
commands:
-background color or
-bg color
-editable boolean
0.
This option overrides the one with the same name for the column
containing the given cell.
-editwindow name
entry. This option overrides
the one with the same name for the column containing the given
cell, and may have the same values as its column-related counterpart.
-font font
-foreground color or
-fg color
-image image
image must be the result of an
invocation of the image create
command, or an empty string, specifying that no image is to be
displayed. If the column containing the cell is
right-aligned then the image will be displayed to the right of
the cell's text, otherwise to its left. The text and the
image are separated from each other by a space character.
If for the same cell the -window option was specified with a
nonempty value then it overrides the -image
option. If the tablelist's state is disabled
then this option will be ignored.
To display an image in a cell, Tablelist makes use of an embedded label widget. This requires more memory than inserting the image directly into the tablelist's body, but has the main advantage of making it possible to adjust the width of the label containing the widget to fit into its column. This has the visual effect of cutting off part of the image from its right or left side, depending on the column's alignment. To make sure that images with transparent background will be displayed correctly, the background color of the label widgets containing the embedded images is automatically updated whenever necessary.
-selectbackground color
-selectforeground color
-text text
state is
disabled then this option will be ignored.
-window command
command may also be an empty
string, specifying that no embedded window is to be
displayed. If the column containing the cell is
right-aligned then the window will be displayed to the right of
the cell's text, otherwise to its left. The text and the
window are separated from each other by a space character.
If this option was specified with a nonempty value then it
overrides the -image
cell configuration option. If the tablelist's
state is
disabled then this option will be ignored.
There are several situations where the embedded window will be destroyed and later recreated by invoking the script mentioned above. For example, when changing the value of some of the tablelist widget or column configuration options, sorting the items, or moving a row or a column, the widget's contents will be redisplayed, which makes it necessary to recreate the embedded windows. This operation won't preserve the changes made on the embedded windows after their creation. For this reason, you should avoid any changes on embedded windows outside their creation scripts.
-background, -font,
-foreground,
-selectbackground, and
-selectforeground cell configuration options
override the options with the same names set at row, column, or
widget level if the specified value is not an empty string.
See the COLORS AND FONTS section
for further details on these options.
-editable
option on both cell and column level. If the cell-level option was
set explicitly then its value determines the editability of the cell's
contents. Otherwise the value of the column-level option is used
to decide whether the cell can be edited interactively. From this
rule it follows that you can enable interactive cell editing for a
whole column by setting its -editable option to
true. To exclude some of the column's cells from interactive
editing, set their -editable option to false.
editcell subcommand, which is invoked
implicitly by clicking with the left mouse button into an editable cell
or using keyboard navigation to move from one editable cell into
another. If the selection type is cell and
the location cursor is in an editable cell, then the interactive
editing of the active element can also be started by pressing
Return or KP_Enter. Per default, the
editcell subcommand creates a temporary entry
widget and embeds it into the cell whose index was passed to it as
argument. You can, however, use the
-editwindow column or
cell configuration option to specify
another widget instead of an entry, like a Tk core spinbox or
checkbutton, or a tile entry, combobox, or checkbutton, or one of the
16 currently supported widgets from the packages BWidget, Iwidgets, combobox (by Bryan Oakley), and Mentry. Before specifying a widget
from one of these library packages as the value of the
-editwindow column or cell configuration option,
you must register it for interactive cell editing by invoking the
corresponding tablelist::add* command. The Tk
core entry, spinbox, and checkbutton widgets, as well as the tile
entry, combobox, and checkbutton widgets are automatically registered
for cell editing.
-formatcommand option of the cell's
column. However, if the value of the -editstartcommand configuration
option is a nonempty string, then the text displayed in the cell is
passed to that command as its last argument (following the tablelist's
path name as well as the cell's row and column indices), the resulting
script is evaluated in the global scope, and the return value becomes
the edit window's contents. From within this script you can
invoke the cancelediting subcommand, which
destroys the temporary embedded widget and cancels the editing of its
contents. The main goal of this script is, however, to enable you
to define validations for the editing process. This can be done
either with the aid of the options for entry validation, supported by
Tk versions 8.3 and higher (see the entry reference page), or by
using the widget callback package Wcb, available for Tk versions 8.0 and
higher. The Iwidgets package (available for Tk versions 8.0 or
higher) provides its own validation facilities, which can equally be
used if the edit window is a widget belonging to that extension.
In either case, you will need the path name of the temporary embedded
widget or that of its entry or entry-like component; use the
editwinpath and
entrypath subcommands to
get these path names. Another purpose of the command indicated by
the -editstartcommand option is to enable you to
prepare the edit window in various other ways. For example, if
the latter is a combobox widget then you can set its
-editable option to false or (for a tile combobox)
set its state to readonly, and you will have to
populate its listbox component. In the same script, you can
change some of the embedded widget's visual attributes (like its
background, selection background, or selection foreground color).
(Notice that this can also be done with the aid of the Tk option
database.)
Control-i inserts a tab, while
Control-j, Control-Return, and
Control-KP_Enter insert a newline. Tab
and Shift-Tab are used for navigation between the editable
cells, just like Alt-Left, Alt-Right,
Alt-Up, Alt-Down, Alt-Prior,
Alt-Next, Control-Home, and
Control-End. The editing can be aborted with the
Escape key (or by invoking the cancelediting subcommand) and
terminated normally with Return or KP_Enter
(the bindigs for these keys just invoke the finishediting subcommand). Normal
termination is also triggered by clicking with the left mouse button
anywhere in the tablelist's body, outside the cell just being edited,
or moving into another editable cell by using keyboard navigation.
-editendcommand configuration option
is a nonempty string, then the edit window's final text is passed to
that command as its last argument (following the tablelist's path name
as well as the cell's row and column indices), the resulting script is
evaluated in the global scope, and the return value becomes the cell's
new internal contents after destroying the temporary embedded
widget. The main goal of this script is to enable you to do a
final validation of the edit window's contents. From within this
script you can invoke the rejectinput subcommand, which prevents
the script's return value from becoming the cell's new contents; this
subcommand also prevents the destruction of the temporary embedded
widget. Another purpose of the command indicated by the
-editendcommand option is to convert the edit
window's text to the cell's new internal contents, which is
necessary if, due to the -formatcommand column configuration
option, the cell's internal value is different from its external
representation. See the description of the -forceeditendcommand option for
more about the invocation of the command mentioned above.
number
| Specifies the item as a numerical index, where 0
corresponds to the first item in the tablelist. |
knumber
| Specifies the item by its full key, composed of the letter
k and the sequence number associated with
the item, as returned by the getkeys widget command. |
active
| Indicates the item containing the element that has the location
cursor. Depending on the selection type, this item as a
whole or just its element having the location cursor will be
displayed according to the value of the -activestyle configuration option
when the tablelist has the keyboard focus. This item is
specified with the activate widget command or as the
row containing the element specified with the activatecell widget command. |
anchor
| Indicates the anchor point for the row selection, which is set
with the selection
anchor widget command, or the row
containing the anchor point for the cell selection, which is
set with the cellselection anchor
widget command. |
end
| Indicates the end of the tablelist. For most commands
this refers to the last item in the tablelist, but for a few
commands such as index, insert, and insertlist, as well as for the
target of the move
command it refers to the item just after the last one. |
@x,y
| Indicates the item that covers the point in the tablelist
window specified by x and
y (in pixel coordinates). If no item
covers that point, then the closest item to that point is
used. The coordinates x and
y are expected to be relative to the
tablelist window itself (not its body component).
|
In the widget command descriptions below, arguments named
index, first, and
last always contain row indices in one of the
above forms.
number
| Specifies the column as a numerical index, where 0
corresponds to the first column in the tablelist. |
active
| Indicates the column containing the element that has the
location cursor. If the selection type is
cell then this element will be displayed
according to the value of the -activestyle configuration option
when the tablelist has the keyboard focus. This element
is specified with the activatecell widget command. |
anchor
| Indicates the column containing the anchor point for the cell
selection, which is set with the cellselection anchor
widget command. |
end
| Indicates the last column of the tablelist, except for the
commands insertcolumns and insertcolumnlist, as
well as for the target of the movecolumn command, in which cases
it refers to the column just after the last one. |
@x,y
| Indicates the column that covers the point in the tablelist
window specified by x and
y (in pixel coordinates). If no
column covers that point, then the closest column to that point
is used. The coordinates x and
y are expected to be relative to the
tablelist window itself (not its body component). |
name
| Specifies the column by the value of its -name configuration option.
name must be different from all the above
column indices, and should be unique (if several columns have
the same name then this value is considered to indicate the
first matching column).
|
row,col
| Indicates the cell having the row index row
and column index col.
row may be a number, a full key (of the
form knumber),
active, anchor, or
end (where the latter indicates the last
row in the tablelist). col may be a
number, active, anchor,
end, or a column name. |
active
| Indicates the element that has the location cursor. If
the selection type is cell then this
element will be displayed according to the value of the
-activestyle
configuration option when the tablelist has the keyboard
focus. This element is specified with the activatecell widget
command. |
anchor
| Indicates the anchor point for the cell selection, which is set
with the cellselection
anchor widget command. |
end
| Indicates the last cell in the last row of the tablelist. |
@x,y
| Indicates the cell that covers the point in the tablelist
window specified by x and
y (in pixel coordinates). If no cell
covers that point, then the closest cell to that point is
used. The coordinates x and
y are expected to be relative to the
tablelist window itself (not its body component).
|
tablelist::tablelist command creates a new
Tcl command whose name is pathName. This
command may be used to invoke various operations on the
widget. It has the following general form:
pathName option ?arg arg ...?
option and the args
determine the exact behavior of the command. The following
commands are possible for tablelist widgets:
pathName activate index
index if the tablelist's state is not
disabled. If index
is outside the range of items in the tablelist then the closest
item is activated. The active item is drawn as specified by
the -activestyle
configuration option when the widget has the input focus and
the selection type is row. Its index
may be retrieved with the index active.
Returns an empty string.
pathName activatecell cellIndex
cellIndex if the tablelist's state is not
disabled. If
cellIndex is outside the range of elements in
the tablelist or it refers to a hidden element, then the closest
non-hidden element is activated. The active element is
drawn as specified by the -activestyle configuration option
when the widget has the input focus and the selection type is
cell. Its index may be retrieved with
the cell index active. Returns an empty
string.
pathName attrib ?name? ?value
name value ...?
name is specified, the command returns a list
of pairs, each of which contains the name and the value of an
attribute for pathName. If
name is specified with no
value, then the command returns the value of
the one named attribute. If one or more
name-value pairs are
specified, then the command sets the given widget attribute(s) to
the given value(s); in this case the return value is an empty
string. name may be an arbitrary
string.
pathName bbox index
pathName bodypath
pathName bodytag
TablelistBody in the list of binding tags of
the tablelist descendants mentioned above.
pathName cancelediting
editcell subcommand, destroys the
temporary widget embedded into the cell, and restores the
original cell contents. This command enables you to cancel
the interactive cell editing from within the Tcl command
specified by the -editstartcommand
configuration option if that pre-edit callback encounters an
error when preparing the text to be inserted into the edit
window. The command is also invoked implicitly by pressing
the Escape key when a cell is being edited.
The return value is an empty string. Immediately before
returning this value, the command generates the virtual event
<<TablelistCellRestored>>.
If no cell was being edited when the command was invoked then an
empty string is returned without generating a virtual event.
pathName cellcget cellIndex
option
option for the cell specified by
cellIndex. option
may have any of the values accepted by the cellconfigure command.
pathName cellconfigure cellIndex
?option? ?value option value
...?
cellIndex. If no
option is specified, the command returns a
list describing all of the available options for the cell (see
Tk_ConfigureInfo for information on the
format of this list). If option is
specified with no value, then the command
returns a list describing the one named option (this list will be
identical to the corresponding sublist of the value returned if
no option is specified). If one or more
option-value pairs are
specified, then the command modifies the given cell option(s) to
have the given value(s); in this case the return value is an
empty string. option may have any of
the values described in the CELL
CONFIGURATION OPTIONS section.
pathName cellindex cellIndex
cellIndex, in the form
row,col, where
row and col are integers.
pathName cellselection option
args
option:
pathName cellselection anchor
cellIndex
cellIndex. If
cellIndex refers to a nonexistent or
hidden element, then the closest non-hidden element is
used. The cell selection anchor is the end of the
cell selection that is fixed while dragging out a cell
selection with the mouse if the selection type is
cell. The cell index
anchor may be used to refer to the
anchor element.
pathName cellselection clear
firstCell lastCellpathName cellselection clear
cellIndexList
firstCell and
lastCell (inclusive) or corresponding
to the cell indices specified by the list
cellIndexList are selected, they are
deselected. The selection state is not changed for
elements outside the range given in the first form of the
command or different from those specified by the cell index
list given in its second form.
pathName cellselection includes
cellIndex
1 if the element indicated by
cellIndex is currently selected,
0 if it isn't.
pathName cellselection set
firstCell lastCellpathName cellselection set
cellIndexList
firstCell and
lastCell, inclusive, or corresponding
to the indices specified by the list
cellIndexList, without affecting the
selection state of any other elements. An element is
viewed as selectable if and only if the value of the
-selectable
option of the row containing it is true.
state is disabled
and option is different from
includes then the command just returns an
empty string, without performing any of the above actions.
pathName cget option
option, which may have any of the values
accepted by the tablelist::tablelist command.
pathName columncget columnIndex
option
option for the column specified by
columnIndex. option
may have any of the values accepted by the columnconfigure command.
pathName columnconfigure columnIndex
?option? ?value option value
...?
columnIndex. If no
option is specified, the command returns a
list describing all of the available options for the column (see
Tk_ConfigureInfo for information on the
format of this list). If option is
specified with no value, then the command
returns a list describing the one named option (this list will be
identical to the corresponding sublist of the value returned if
no option is specified). If one or more
option-value pairs are
specified, then the command modifies the given column option(s)
to have the given value(s); in this case the return value is an
empty string. option may have any of
the values described in the COLUMN
CONFIGURATION OPTIONS section.
pathName columncount
pathName columnindex columnIndex
columnIndex.
pathName configure ?option?
?value option value ...?
option is specified, the
command returns a list describing all of the available options
for pathName (see
Tk_ConfigureInfo for information on the
format of this list). If option is
specified with no value, then the command
returns a list describing the one named option (this list will be
identical to the corresponding sublist of the value returned if
no option is specified). If one or more
option-value pairs are
specified, then the command modifies the given widget option(s)
to have the given value(s); in this case the return value is an
empty string. option may have any of
the values accepted by the
tablelist::tablelist command.
pathName containing y
-1. The coordinate
y is expected to be relative to the tablelist
window itself (not its body component).
pathName containingcell x
y
-1. The coordinates
x and y are expected to
be relative to the tablelist window itself (not its body
component).
pathName containingcolumn x
-1. The coordinate
x is expected to be relative to the tablelist
window itself (not its body component).
pathName curcellselection
row,col, where row
and col are numbers) of all of the non-hidden
elements in the tablelist that are currently selected. If
there are no such elements in the tablelist then an empty string
is returned.
pathName curselection
pathName delete first
lastpathName delete indexList
state is not
disabled. In the first form of the
command, first and last
are indices specifying the first and last items in the range to
delete. The command's second form accepts a list
indexList of indices specifying the items to
be deleted. Returns an empty string.
pathName deletecolumns firstColumn
lastColumnpathName deletecolumns
columnIndexList
state is not
disabled. In the first form of the
command, firstColumn and
lastColumn are indices specifying the first
and last columns in the range to delete. The command's
second form accepts a list columnIndexList
of indices specifying the columns to be deleted. Returns an
empty string.
pathName editcell cellIndex
state is not
disabled, the cell's column is not hidden,
and the cell is editable. Returns an empty string.
See the INTERACTIVE CELL EDITING
section for details on editablity and on the editing process.
pathName editwinpath
editcell subcommand. If no cell
is currently being edited then the return value is an empty
string. This subcommand enables you to access the edit
window from within the commands specified by the -editstartcommand and
-editendcommand