Tk - Descripción general de los widgets
El componente básico de una aplicación basada en Tk se llama widget. Un componente a veces también se llama ventana, ya que, en Tk, "ventana" y "widget" se usan indistintamente. Tk es un paquete que proporciona un rico conjunto de componentes gráficos para crear aplicaciones gráficas con Tcl.
Tk proporciona una gama de widgets que van desde widgets básicos de GUI como botones y menús hasta widgets de visualización de datos. Los widgets son muy configurables ya que tienen configuraciones predeterminadas que facilitan su uso.
Las aplicaciones de Tk siguen una jerarquía de widgets donde cualquier número de widgets puede colocarse dentro de otro widget y esos widgets dentro de otro widget. El widget principal en un programa Tk se denomina widget raíz y se puede crear creando una nueva instancia de la clase TkRoot.
Crear un widget
La sintaxis para crear un widget se muestra a continuación.
type variableName arguments options
El tipo aquí se refiere al tipo de widget como botón, etiqueta, etc. Los argumentos pueden ser opcionales y obligatorios según la sintaxis individual de cada widget. Las opciones varían desde el tamaño hasta el formato de cada componente.
Convención de nomenclatura de widgets
El widget usa una estructura similar a la de nombrar paquetes. En Tk, la ventana raíz se nombra con un punto (.) Y un elemento en la ventana, por ejemplo, el botón se llama .myButton1. El nombre de la variable debe comenzar con una letra minúscula, un dígito o un signo de puntuación (excepto un punto). Después del primer carácter, otros caracteres pueden ser letras mayúsculas o minúsculas, números o signos de puntuación (excepto puntos). Se recomienda utilizar una letra minúscula para comenzar la etiqueta.
Convención de nomenclatura de colores
Los colores se pueden declarar usando nombres como rojo, verde, etc. También puede utilizar la representación hexadecimal con #. El número de dígitos hexadecimales puede ser 3, 6, 9 o 12.
Convención de dimensión
La unidad predeterminada son los píxeles y se utiliza cuando no especificamos ninguna dimensión. Las otras dimensiones son i para pulgadas, m para milímetros, c para centímetros yp para puntos.
Opciones comunes
Hay tantas opciones comunes disponibles para todos los widgets y se enumeran a continuación en la siguiente tabla:
No Señor. | Sintaxis y descripción |
---|---|
1 | -background color Se utiliza para establecer el color de fondo del widget. |
2 | -borderwidth width Se utiliza para dibujar con borde en efectos 3D. |
3 | -font fontDescriptor Se utiliza para configurar la fuente del widget. |
4 | -foreground color Se utiliza para establecer el color de primer plano del widget. |
5 | -height number Se usa para establecer la altura del widget. |
6 | -highlightbackground color Se utiliza para configurar el rectángulo de color para dibujar alrededor de un widget cuando el widget no tiene el foco de entrada. |
7 | -highlightcolor color Se usa para configurar el rectángulo de color para dibujar alrededor de un widget cuando el widget tiene el foco de entrada. |
8 | -padx number Establece el padx para el widget. |
9 | -pady number Establece el pady para el widget. |
10 | -relief condition Establece el relieve 3D para este widget. La afección puede ser elevada, hundida, plana, con cresta, sólida o surcada. |
11 | -text text Establece el texto del widget. |
12 | -textvariable varName Variable asociada al widget. Cuando el texto del widget cambia, la variable se establece con el texto del widget. |
13 | -width number Establece el ancho del widget. |
A continuación se muestra un ejemplo sencillo de opciones.
#!/usr/bin/wish
grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
-padx 100 -pady 100
Cuando ejecutamos el programa anterior, obtendremos el siguiente resultado.
La lista de widgets disponibles se clasifica a continuación:
Widgets básicos
No Señor. | Widget y descripción |
---|---|
1 | Label Widget para mostrar una sola línea de texto. |
2 | Button Widget en el que se puede hacer clic y activa una acción. |
3 | Entry Widget utilizado para aceptar una sola línea de texto como entrada. |
4 | Message Widget para mostrar múltiples líneas de texto. |
5 | Text Widget para mostrar y, opcionalmente, editar varias líneas de texto. |
6 | Toplevel Ventana con todos los bordes y decoraciones proporcionados por el administrador de ventanas. |
Widgets de diseño
No Señor. | Widget y descripción |
---|---|
1 | Frame Widget de contenedor para contener otros widgets. |
2 | Place Widget para contener otros widgets en un lugar específico con coordenadas de su origen y un tamaño exacto. |
3 | Pack Widget simple para organizar widgets en bloques antes de colocarlos en el widget principal. |
4 | Grid Widget para anidar widgets empaquetados en diferentes direcciones. |
Widgets de selección
No Señor. | Widget y descripción |
---|---|
1 | Radiobutton Widget que tiene un conjunto de botones y etiquetas de encendido / apagado, uno de los cuales puede seleccionarse. |
2 | Checkbutton Widget que tiene un conjunto de botones y etiquetas de encendido / apagado, muchos de los cuales pueden seleccionarse. |
3 | Menu Widget que actúa como soporte para los elementos del menú. |
4 | Listbox Widget que muestra una lista de celdas, una o más de las cuales se pueden seleccionar. |
Mega widgets
No Señor. | Widget y descripción |
---|---|
1 | Dialog Widget para mostrar cuadros de diálogo. |
2 | Spinbox Widget que permite a los usuarios elegir números. |
3 | Combobox Widget que combina una entrada con una lista de opciones disponibles para el uso. |
4 | Notebook Widget con pestañas que ayuda a cambiar entre una de varias páginas, usando una pestaña de índice. |
5 | Progressbar Widget para proporcionar información visual sobre el progreso de una operación larga como la carga de archivos. |
6 | Treeview Widget para mostrar y permitir navegar a través de una jerarquía de elementos más en forma de árbol. |
7 | Scrollbar Widgets de desplazamiento sin texto o widgets de lienzo. |
8 | Scale Escala del widget para elegir un valor numérico a través de controles deslizantes. |
Otros widgets
No Señor. | Widget y descripción |
---|---|
1 | Canvas Widget de dibujo para mostrar gráficos e imágenes. |
Cubriremos cada uno de estos widgets en los próximos capítulos.