Ejemplo de formulario en Tcl/Tk
proc ventana { } {
toplevel .personajes -width 300 -height 130 -bg grey
frame .personajes.arriba -width 300 -height 100 -bg grey
label .personajes.arriba.datos -text «Datos Personales»
frame .personajes.arriba.izquierda -width 150 -height 50 -bg grey
frame .personajes.arriba.derecha -width 150 -height 50 -bg grey
frame .personajes.abajo -width 300 -height 130 -bg grey
label .personajes.abajo.caract -text «Características»
frame .personajes.abajo.izquierda -width 150 -height 130 -bg grey
frame .personajes.abajo.derecha -width 150 -height 130 -bg grey
frame .personajes.abajo.bajo -width 150 -height 14 -bg grey
#pack .personajes -ipadx 2c -ipady 2c
pack .personajes.arriba -ipadx 2 -ipady 2
pack .personajes.arriba.datos -pady 6
pack .personajes.arriba.izquierda -side left -padx 12 -pady 6
pack .personajes.arriba.derecha -side right -padx 12 -pady 6
pack .personajes.abajo -pady 6
pack .personajes.abajo.caract -pady 6
pack .personajes.abajo.izquierda -side left -padx 12
pack .personajes.abajo.derecha -side right -padx 12
foreach et { et1 et2 et3 et4 } {
label .personajes.arriba.izquierda.$et -bg grey
pack .personajes.arriba.izquierda.$et -anchor w }
.personajes.arriba.izquierda.et1 configure -text «Nombre»
.personajes.arriba.izquierda.et2 configure -text «Profesión»
.personajes.arriba.izquierda.et3 configure -text «Raza»
.personajes.arriba.izquierda.et4 configure -text «Alineamiento»
foreach campo {campo1 campo2 campo3 campo4 } {
entry .personajes.arriba.derecha.$campo
pack .personajes.arriba.derecha.$campo }
foreach car { car1 car2 car3 car4 } {
label .personajes.abajo.izquierda.$car -bg grey
pack .personajes.abajo.izquierda.$car -anchor w }
.personajes.abajo.izquierda.car1 configure -text «Fuerza»
.personajes.abajo.izquierda.car2 configure -text «Destreza»
.personajes.abajo.izquierda.car3 configure -text «Constitución»
.personajes.abajo.izquierda.car4 configure -text «Inteligencia»
foreach num { num1 num2 num3 num4 } {
entry .personajes.abajo.derecha.$num -width 5
pack .personajes.abajo.derecha.$num
}
button .personajes.salir -text «Salir» -command { exit }
pack .personajes.salir -side bottom -side right -pady 6 -padx 6
button .personajes.boton -text «Guardar» -command { Guardar }
pack .personajes.boton -side bottom -side left -pady 6 -padx 6
## — — — — — — — ##
##- Etiquetas vacías -##
## — — — — — — — ##
label .personajes.arriba.derecha.nombre -bg grey
label .personajes.arriba.derecha.profe -bg grey
label .personajes.arriba.derecha.raza -bg grey
label .personajes.arriba.derecha.alinea -bg grey
label .personajes.abajo.derecha.fuerza -bg grey
label .personajes.abajo.derecha.destreza -bg grey
label .personajes.abajo.derecha.constitucion -bg grey
label .personajes.abajo.derecha.inteligencia -bg grey
## — — — — — — — ##
##- Procedimiento del botón Guardar -##
## — — — — — — — ##
proc Guardar { } {
set nombre [.personajes.arriba.derecha.campo1 get ]
.personajes.arriba.derecha.nombre configure -text $nombre
set profe [.personajes.arriba.derecha.campo2 get ]
.personajes.arriba.derecha.profe configure -text $profe
set raza [.personajes.arriba.derecha.campo3 get ]
.personajes.arriba.derecha.raza configure -text $raza
set alinea [.personajes.arriba.derecha.campo4 get ]
.personajes.arriba.derecha.alinea configure -text $alinea
pack .personajes.arriba.derecha.nombre -anchor w
pack .personajes.arriba.derecha.profe -anchor w
pack .personajes.arriba.derecha.raza -anchor w
pack .personajes.arriba.derecha.alinea -anchor w
set fuerza [.personajes.abajo.derecha.num1 get ]
.personajes.abajo.derecha.fuerza configure -text $fuerza
set destreza [.personajes.abajo.derecha.num2 get ]
.personajes.abajo.derecha.destreza configure -text $destreza
set constitucion [.personajes.abajo.derecha.num3 get ]
.personajes.abajo.derecha.constitucion configure -text $constitucion
set inteligencia [.personajes.abajo.derecha.num4 get ]
.personajes.abajo.derecha.inteligencia configure -text $inteligencia
pack .personajes.abajo.derecha.fuerza -anchor w
pack .personajes.abajo.derecha.destreza -anchor w
pack .personajes.abajo.derecha.constitucion -anchor w
pack .personajes.abajo.derecha.inteligencia -anchor w
foreach num {num1 num2 num3 num4} {
destroy .personajes.abajo.derecha.$num }
foreach campo { campo1 campo2 campo3 campo4 } {
destroy .personajes.arriba.derecha.$campo }
destroy .personajes.boton
}
}