---
name: "itk"
section: "3itk"
platform: "linux"
package: "itk3-doc"
version: "3.4.2-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/itk"
---

# itk(3itk)

framework for building mega-widgets in Tcl/Tk

```

```

## NAME

itk - framework for building mega-widgets in Tcl/Tk

```

```

## DESCRIPTION

Mega-widgets are high-level widgets that are constructed using Tk widgets as component parts, usually without any C code.  A fileselectionbox, for example, may have a few listboxes, some entry widgets and some control buttons.  These individual widgets are put together in a way that makes them act like one big widget.  A fileselectionbox mega-widget can be created with a command like:

```
fileselectionbox .fsb -background blue -foreground white
```

Once it has been created, it can be reconfigured with a command like:

```
.fsb configure -background green -foreground black
```

and all of its internal components will change color.  Each mega-widget has a set of methods that can be used to manipulate it.  For example, the current selection can be queried from a fileselectionbox like this:

```
set fileName [.fsb get]
```

In effect, a mega-widget looks and acts exactly like a Tk widget, but is considerably easier to implement.

**\[incr Tk\]** is a framework for building mega-widgets.  It uses **\[incr Tcl\]** to support the object paradigm, and adds base classes which provide default widget behaviors.

All **\[incr Tk\]** widgets are derived from the **Archetype** base class.  This class manages internal component widgets, and provides methods like "configure" and "cget" to access configuration options.

The **Widget** base class inherits everything from **Archetype**, and adds a Tk frame which acts as a container for the mega-widget. It is used to build mega-widgets that sit inside of other frames and toplevels.  Derived classes create other internal components and pack them into the "hull" frame created by the **Widget** base class.

The **Toplevel** base class inherits everything from **Archetype**, but adds a Tk toplevel which acts as a container for the mega-widget. It is used to build mega-widgets, such as dialog boxes, that have their own toplevel window.  Derived classes create other internal components and pack them into the "hull" toplevel created by the **Toplevel** base class.

## \[incr Widgets\] LIBRARY

**\[incr Widgets\]** is a mega-widget library built using **\[incr Tk\]**.  It can be used right out of the box, and contains more than 30 different widget classes, including:

- \-

  fileselectiondialog

- \-

  tabnotebook

- \-

  panedwindow

- \-

  combobox

- \-

  optionmenu

- \-

  scrolledlistbox

- \-

  scrolledframe

- \-

  messagedialog

- \-

  and many others...

The **catalog** demo in the "iwidgets/demos" directory shows all of the available widgets in action.  Each widget class has its own man page describing the features available.

## KEYWORDS

class, object, object-oriented, mega-widget
