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

}

}

Write a Reply or Comment

Your email address will not be published.