---
name: "Tk::Table"
section: "3pm"
platform: "linux"
package: "perl-tk"
version: "804.036-9"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Tk::Table"
---

# Tk::Table(3pm)

Scrollable 2 dimensional table of Tk widgets

## 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
