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.
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.gifThe 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=24918Version 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
- 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)