I posted an answer here, that may be useful, for convenience I will just put it here again.
Yad may be useful in this regard, it is a fork of zenity with more features, one of them the ability to create forms.
Here is a very simple example of a form:
#!/bin/bash
frmdata=$(yad --title "Test Form" --form --field "Address" --field="Name")
frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
echo $frmaddr > test.txt
echo $frmname >> test.txt
The above script will display a form like this:

After you enter your data and click ok or hit enter on the keyboard, the form data will be written to a text file called test.txt, I am using awk to separate the form data which is a string with a pipe as field separator, I believe there is a direct way to get the data without awk but I am no yad expert, please check the project home and ask questions, you may find a more elegant way.
How to get and install yad here:
http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html
yad project home:
http://code.google.com/p/yad/
more examples here:
http://technostripe.com/yad-a-fork-of-zenity-with-more-features/
http://code.google.com/p/yad/wiki/Examples
There is no form designer for it yet but since the syntax is so simple and so close to zenity, that is not usually a problem.