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.