
Para la declaración de un botón en tk se utiliza el comando button seguido de los parámetros .nom que es el nombre con el que se conocerá el botón para efectos de programación, -text "texto" que lleva el mensaje que aparecerá impreso sobre el botón y -command {comando} que llevará el comando que se ejecutará cuando sea presionado.
Y para su empaquetación dentro de alguna ventana se utiliza el comando pack seguido del nombre del botón que se declaró; es posible utilizar parámetros optativos en este comando para efectos de formato.
Creación de un botón que ponga en pantalla un mensaje:
El siguiente ejemplo crea dos botones, el primero para escribir un mensaje en la pantalla y el segundo para terminar el programa:
El parámetro -fill hace que el botón sea tan largo como la ventana donde se coloca extendiendose en las coordenadas x o y dependiendo de lo que se le indique. Si se omite en este ejemplo un botón será mas largo que el otro.
Ejemplo:
Botón normal
Ejemplos:
#! /usr/local/bin/wish4.0
# declaracion del boton
button .boton -text "Mensaje" \
-command {puts stdout "Mensaje en pantalla"}
# crea o empaqueta el boton en la pantalla
pack .boton -padx 20 -pady 20
Los parámetros -padx y -pady le indican al tk la cantidad de pixeles que debe dejar en blanco entre el botón y la ventana, o la siguiente estructura, dependiendo del caso, en las coordenadas x y y respectivamente. En este ejemplo se dejaron 20 pixeles hacia los lados y 20 hacia arriba y abajo en blanco alrededor del botón.
#! /usr/local/bin/wish4.0
# Título de la ventana
wm title . Hola
# declaración de los botones
button .boton -text "Mensaje" -command {
puts stdout "Mensaje en pantalla"}
button .salir -text "Salir" -command { destroy . }
# empaquetación de los botones
pack .boton -fill x
pack .salir -fill x
El comando destroy elimina la estructura cuyo nombre se de como parámetro en este caso la ventana principal ".", terminando así la ejecución del programa. Botón de evaluación booleana (verdadero o falso)
Este botón se utiliza normalmente cuando se van a seleccionar varias opciones cuya respuesta exige una evaluación falso-verdadero, siempre serán independientes unas de otras, esto es, cualquiera de ellas puede contener falso o verdadero sin ser afectado dicho valor por el contenido de otros botones del mismo tipo.
#!/usr/local/bin/wish4.0
checkbutton .botoncheck -text "Valor" \n
-variable que \
padx 10 -pady 10 -command {puts stdout $que}
pack .botoncheck
Botón de opción excluyente
En este tipo de botón podemos seleccionar unicamente una de las opciones, y no dos o tres como en el anterior.
Ejemplo:
#! /usr/local/bin/wish4.0
set que ""
radiobutton .boton -text "uno" \n
-variable que -value "uno"
radiobutton .boton2 -text "dos" \n
-variable que -value "dos"
button .botonok -text "Aceptar" \n
-command {aceptar $que}
pack .boton
pack .boton2
pack .botonok
proc aceptar {variable} {
if {$variable != ""} {
puts stdout " La seleccion fue: $variable "
} else {
puts stdout " No hubo seleccion "
}
exit
}