
A continuación se indica el nombre con el que se hará referencia al menú posteriormente:
Despues se agregan cada una de las opciones:
Ejemplo:
.nombre
Su sintaxis es:
Ejemplos:
Este primer ejemplo crea unicamente la ventana de texto en la pantalla:
El comando para crearlo es:
scale .nombre -orient orientacion -width ancho -length largo -from val1 -to val2 -command comando - tickinterval intervalo
"orientación" puede ser horizontal o vertical; "ancho" y "largo" son valores enteros en pixeles para controlar en largo y ancho de la barra; val1 y val2 son los valores entre los cuales estará comprendido el posible valor del indicador; comando es el comando que realizará la barra, normalmente será la asignación del valor del indicador a alguna variable; intervalo se refiere al intervalo entre cada uno de los valores visibles en la barra.
Ejemplo:
Creación de un menú
Para la creación de un menú se utiliza el comando menubutton para crear el botón que servirá para llamar a las diferentes opciones del menú:menubutton .variable -text "Nombre" \
-command "comando" menu .variable.nombre
.variable.nombre add command -label "Nombre de \
la opcion" -command "comando1"
.variable.nombre add command -label "Nombre 2" \
-command "comando2"
.variable.nombre add command -label "Nombre 3" \
-command "comando3"
Y por último se "empaqueta" para que aparezca en la pantalla:
pack .menu1
El comando especificado al momento de crear las opciones puede ser un procedimiento en lugar de un comando del tcl, lo que nos permite que una opción del menú sea capaz de ejecutar algún otro programa completo del tcl.
#!/usr/local/bin/wish4.0
menubutton .menu1 -text "Programas" \
-menu .menu1.m
menu .menu1.m
.menu1.m add command -label "Primera" \
-command "puts stdout Primera"
.menu1.m add command -label "Segunda" \
-command "puts stdout Segunda"
.menu1.m add command -label "Tercera" \
-command "puts stdout Tercera"
.menu1.m add command -label "Salir" \
-command "exit"
pack .menu1
Listas
Es posible acceder al contenido de una lista de tcl con la estructura listbox, la cual se crea de la siguiente forma:
listbox .nombre
Una vez creada se empaqueta:
pack .nombre
Y se pueden agregar elementos como a cualquier lista en tcl: Entradas de teclado
La forma mas sencilla de crear una entrada desde teclado es utilizando la estructura entry que tiene la siguiente sintaxis: entry .nombre -textvariable nomvar
donde .nombre será el nombre que hará referencia a la estructura y nomvar es la variable que almacenará el valor que se introduzca en la ventana. Para empaquetarlo en pantalla se utiliza el comando pack:
pack .nombre
Ejemplo:
#! /usr/local/bin/wish4.0
entry .entrada1 -textvariable var1
pack .entrada1
Un ejemplo mas elaborado es el siguiente, donde el contenido de la variable que se introduce se imprime inmediatamente en otra estructura del tk llamada "label" o etiqueta:
#! /usr/local/bin/wish4.0
entry .entrada1 -width 35 -relief sunken \
-textvariable var1
label .et1 -width 10 -textvariable var1 \
-relief sunken
pack .entrada1 .et1 -padx 10 -pady 10 -fill x
Otra forma de entrada de datos desde teclado hacia el tk es la estructura llamada "text", la cual crea una ventana que permite la escritura de múltiples lineas de texto. text .nombre -width n1 -height n2
Donde .nombre es el nombre de la estructura, n1 es el ancho de la ventana en número de caracteres y n2 es el alto de la ventana. Tambien es necesario empaquetar esta estructura con el comando pack.
#!/usr/local/bin/wish4.0
text .texto1 -width 45 -height 5 -relief sunken
pack .texto1
Este otro ejemplo ademas de la ventana de texto, crea otra entrada y un botón, es uno de los editores de texto mas sencillos que se puedan crear con el tk, en la ventana pequeña se escribe el nombre de un archivo, en la grande el contenido del mismo y al momento de presionar el botón "Guardar" se creará el archivo. Naturalmente la sencillez extrema del ejemplo impide cargar un archivo desde el disco, y si no se teclea un nombre válido de archivo se generará un error, ademas, si el archivo ya existe se eliminará su contenido y se escribirá en el lo que se encuentre en la ventana, por esa razón se debe tener cuidado al momento de crear un archivo con este programa.
#!/usr/local/bin/wish4.0
text .texto1 -width 45 -height 5 -relief sunken
entry .nombre -width 30 -relief sunken \
-textvariable nomarch
button .guardar -text Guardar \
-command {guarda $nomarch}
pack .texto1
pack .nombre
pack .guardar
proc guarda { nombre } {
set archivo [open $nombre w 0666]
set texto [.texto1 get 1.0 end]
puts $archivo $texto
close $archivo
}
Selector
Este elemento del tk consiste en una barra con una escala, cuyo valor es seleccionado desplazando un indicador en dicha barra. Es parecido al control de volumen de un modular.
#!/usr/local/bin/wish4.0
scale .scale1 -width 10 -orient horizontal \
-length 300
-from 0 -to 60 -command "set var1" \
-tickinterval 5 -relief raised
label .lab1 -width 10 -textvariable var1 \
-relief sunken
pack .scale1 .lab1 -padx 1m -pady 2m -fill x
.scale1 set 20