NAME
Tk::Table - Scrollable 2 dimensional table of Tk widgets
SYNOPSIS
use
Tk::Table;
$table
=
$parent
->Table(
-rows
=> number,
-columns
=> number,
-scrollbars
=> anchor,
-fixedrows
=> number,
-fixedcolumns
=> number,
-takefocus
=> boolean);
$widget
=
$table
->Button(...);
$old
=
$table
->put(
$row
,
$col
,
$widget
);
$old
=
$table
->put(
$row
,
$col
,
"Text"
);
# simple Label
$widget
=
$table
->get(
$row
,
$col
);
$cols
=
$table
->totalColumns;
$rows
=
$table
->totalRows;
$table
->see(
$widget
);
$table
->see(
$row
,
$col
);
(
$row
,
$col
) =
$table
->Posn(
$widget
);
DESCRIPTION
Tk::Table is an all-perl widget/geometry manager which allows a two dimensional table of arbitary perl/Tk widgets to be displayed.
Entries in the Table are simply ordinary perl/Tk widgets. They should be created with the Table as their parent. Widgets are positioned in the table using:
$table
->put(
$row
,
$col
,
$widget
)
If $widget is not a reference it is treated as a string, and a Lable widget is created with the string as its text.
All the widgets in each column are set to the same width - the requested width of the widest widget in the column. Likewise, all the widgets in each row are set to the same height - the requested height of the tallest widget in the column.
A number of rows and/or columns can be marked as 'fixed' - and so can serve as 'headings' for the remainder the rows which are scrollable.
The requested size of the table as a whole is such that the number of rows specified by -rows (default 10), and number of columns specified by -columns (default 10) can be displayed.
If the Table is told it can take the keyboard focus then cursor and scroll keys scroll the displayed widgets.
-scrollbars
. By default, scrollbars will be added nw
. To disable scrollbars, set -scrollbars
to an empty string:
$table
=
$parent
->Table(
-scrollbars
=>
''
, ...);
The table can be emptied using
$table
->clear
the widgets which were in the table are destroyed.
The Tk::Table widget is derived from a Tk::Frame, so inherits all its configure options.
The default focus traversal is giving the focus only to the table widget as a whole. To enable focus traversal into table cells (e.g. if there are embedded entry widgets), then the option -takefocus
has to be set to 0
.
BUGS / Snags / Possible enhancements
Very large Tables consume a lot of X windows.
No equivalent of pack's -anchor/-pad etc. options
SEE ALSO
Tk::grid, Tk::HList, Tk::TableMatrix, Tk::MListbox, Tk::Columns