The Tk windowing toolkit, written in C, is designed to give the programmer a relatively high level interface to their windowing environment.
Tk is equally available as a windowing toolkit for Tcl, Ruby, Perl, Python. TkDocs has the best overview of how this compares. Tk started life as a Tcl extension.
"Tk" occasionally is used when referring to
On a Macintosh, Tk provides interfaces to the MacOS windowing system. On Microsoft Windows 95/98/NT/2000/2003/XP/Vista/..., Tk provides interfaces to the Microsoft windowing system. On the other platforms where Tk is available, Tk 8.[0-4], updated to look very similar to Motif, but not using the Motif libraries. Prior to that Tk provides interfaces to the X window system using a Tk specific look and feel. Tk 8.[56] have undergone tweaking so that applications look more like other applications on the platform on which the application is running.
Tk applications run on the desktop, not in the browser. Strategically this means Tk apps will become less prevalent if most applications move to web-based software.
Tk is not universally available for the browser, so programs written in Tk can only really work on the desktop.
You can find the source code for Tk at http://sourceforge.net/projects/tktoolkit/ .
Tk was written by John Ousterhout, the creator of Tcl. A PostScript version of the paper where Tk was introduced to the world can be found at ftp://www.tcl.tk/pub/tcl/doc/tkUsenix91.ps .
The PostScript for slides used by Dr. John Ousterhout during USENIX tutorials on Tcl and Tk can be found at ftp://www.tcl.tk/pub/tcl/doc/tut.tar.Z .
Tk allows you to create, manage, and manipulate widgets, rectangular areas on the screen with various features, from which you can build quite powerful GUIs with little effort.
In Tk, the programmer only needs to specify how the widgets are arranged in a window (layout); the geometry of widgets is dynamic, so they can respond automatically both to changes in layout and to user resizing of windows.
Some examples of widget types are:
For sample images, look at Widgets in the initial Tk package.
To understand the model for how GUI applications are built and operated see TkDocs.
See Beginning Tk for more information.
See Tk
Also of interest might be Alternate toolkit bindings, Common Tk Error Messages and Possible Explanations,
See What is Tcl for information about the initial language that formed a basis for Tk.