SpecTcl Info Page
For information on the recently updated GUI Builder, see the
main page.
SpecTcl is a GUI builder for Tcl/Tk. It features drag & drop
widget creation and configuration of widgets through a GUI. It is written
in pure Tcl/Tk, so it runs on Unix, Mac and Windows. Compared to other
Tcl/Tk GUI builders it has the following advantages:
- Small, simple, easy to learn
- Short, complete and concise manual
- Up to date with Tcl/Tk 8.4a2 (from version 1.2a1)
- Supports widgets from virtually all Tcl/Tk extensions (from version 1.2a1)
- A WYSIWYG menu editor (from version 1.2a2)
Usage
In SpecTcl, one creates the desired widget layout in the windows, one adds
extra code that should be run each time such a window is created and this
is saved in a file named something like foo.ui (SpecTcl's own file
format). Hereafter, SpecTcl can generate a Tcl/Tk file (foo.ui.tcl)
which contains a function (foo_ui). When called with an existing
frame or toplevel as the first argument, this function creates the widgets
as children of its first argument. All that is left for you to do is to
source the Tcl/Tk file (foo.ui.tcl), create a toplevel or frame
and call the function (foo_ui) with the frame/toplevel as the first
argument.
The advantages of not automatically creating the toplevel are many:
- You can use the design in different top level widgets
- You can have many copies of the same window design
- When you want to be able to choose between several different appearances
of the same window you can just make several frames and hide all but one
of them.
SpecTcl isn't an IDE (Integrated Development Environment) and it is not
my plan to make it one. IDE's on the one hand help you find variables,
functions, widgets etc easily, but also tend to have a "big brother" effect
whereby you lose some control. SpecTcl is for those that fear the latter
more than they value the former.
Requirements
It is implemented in pure Tcl/Tk, so it will run on any platform where
Tcl/Tk runs. Minimum version is apparently Tcl7.6, but I developed it under
Tcl/Tk 8.0 and this is also the minimum version if one wishes to use widgets
from extensions or use the menu editor. SpecTcl has been reported not to work with Tcl/Tk 8.2 on HP Unix and FreeBSD - it is probably advisable to stay away from Tcl/Tk version 8.2 completely.
Screen Shots
The main window (shown above) main.gif
The widget properties window properties.gif
The preferences window preferences.gif
The main menueditor window menueditor.gif
History
SpecTcl was initially developed by Sun Micro Systems (up to and including
version 1.1 back in 1997). After 3 years without a maintainer or a new
release, I took over in April 2001.
Requests and Bugs
Please check the bugs section in the online help for a list of bugs
and requests. Hereafter, please use the discussion
forum so that everyone gets the news and the chance to comment. If
you wish to contribute code or become a fixed member of the development
team I'd be glad to hear from you. One thing that someone more artistic
than me could do is make a nicer spinbox icon that fits in with the others.
Download
Both the program and manuals can be dowloaded from http://sourceforge.net/project/showfiles.php?group_id=24918
Version numbering is like Tcl/Tk. Last stable version is 1.1, but it
might be preferable to dowload the latest alpha pre-release to get the
extra bug-fixes, new features and new bugs ;-)
To see the differences between versions, check the release statements
in "Latest News" on the project
page or the "changes" file in the distribution itself.
Related projects
The Tk toolkit also has interfaces in other languages than Tcl. There is
therefore also a need for a GUI builder that generates code for these languages.
Various people have written code generation code for these languages:
-
Perl code generation with SpecPerl
by Mark Kvale
-
Python code generation with SpecPython
by Erik Brunel
-
Python (independent of the above) - SpecPython
by Richard Colley
-
Ruby code generation with SpecRuby
written by Conrad Schneiker maintained by Jonathan Conway
Other related projects:
- SpecTix is an alternative to SpecTcl
(and is derived from it) that uses the Tix extension to Tk. Generates code
for Perl, Python, Tcl, Ruby and Java (AWT). By Mike Clarkson.
- GUI Builder is a next-generation SpecTcl alternative that is now
available within the SpecTcl project. The sources are in the
guib area of the subversion codebase.
(GUI Builder docs)