MODULE
QWizard - A Question and Answer Wizard
DESCRIPTION
The QWizard module allows script authors to concentrate on the
content of the forms they want their users to fill in without
worrying about the display. It allows "Question Wizard" like
interfaces to be very easily created and the results of the input
easily acted upon. Scripts written which are entirely based on
QWizard inputs are able to be run from the command line which will
show a Gtk2, Tk window or as a ReadLine interactive session or as a
CGI script without modification. Script writers do not need to know
which interface is being used to display the resulting form(s) as it
should be transparent to the script itself.
Other wizard interfaces exist for perl, but this one strives very
hard to be both extensible and easy to code with requiring as little
work by script authors as possible. It is also one of the only ones
that supports both web environments and windowing environments
without code modification required by the script author.
See also the Getopt::GUI::Long module for an interesting use of the
QWizard suite.
PREREQUISITES
In order to make use of the different environments that QWizard can
support, you should have at least one of the following module sets
installed:
Web based scripts:
CGI # (common with all perl these days)
CGI::Cookie
Gtk2 based graphical scripts:
Gtk2
Tk based graphical scripts:
Tk
Tk::Table
Tk::FileSelect
Tk::Tree # optional
Tk::PNG # optional (for image support)
CLI support (minimal):
Term::ReadLine
Additional features available if the modules are available:
GD::Graph # graphing support
HISTORY
QWizard was originally developed within the Net-Policy network
management system but was later made to be a separate system and is
now used in other applications as well.
One of the goals of Net-Policy was to create a user interface that
was easy to use and "wizard" driven, helping guide a user through
complex tasks. The early Net-Policy code had serious issues trying
to keep track of state between long series of user input screens
using the standard CGI package, and the QWizard system was developed
specifically to combat this problem. Net-Policy is still built on
top of it making heavy use of the QWizard system and offers both a
Gtk2, Tk, and HTML network management interface using the same code
base.
The Getopt::GUI::Long module is based on QWizard as well and offers
a graphical command-line input interface.
FUTURE WORK
A curses and WAP (cell phone) interface have been started but aren't
being actively worked on (let me know if you are interested it
continuing it's development). Once complete existing applications
will not need to be modified to make these interfaces work with the
newer infrastructure underneath them.