Desarrollo de interfaces gráficas en Python 3 con Tkinter. Tomás Domínguez Mínguez
Чтение книги онлайн.
Читать онлайн книгу Desarrollo de interfaces gráficas en Python 3 con Tkinter - Tomás Domínguez Mínguez страница 9
En primer lugar, se importan las conocidas clases Tk y Label:
Luego, se declaran las constantes que definen el número de filas y columnas que va a tener la rejilla en la que se van a distribuir las etiquetas:
A continuación, se crea la ventana principal:
El código principal de este programa está en los bucles for, mediante los que se crean y se sitúan las etiquetas en las posiciones correspondientes. El bucle exterior recorre las filas, mientras que el interior recorre las columnas:
Las etiquetas se crean con un texto que contiene el número de la fila y de la columna donde se van a colocar. La opción bg determina que el color de fondo sea amarillo:
Más adelante, estudiará todas las opciones de configuración de las etiquetas.
La siguiente sentencia sitúa cada etiqueta en la ventana principal con el método grid(). En este método se utilizan cuatro opciones: las que identifican la fila y la columna en la que deben ubicarse (row y column) y las que establecen los márgenes alrededor de cada una de ellas para separarlas entre sí (padx y pady):
El resultado obtenido al ejecutar este programa lo puede ver a continuación:
Ahora, redimensione la pantalla. Como podrá observar, las etiquetas se mantienen con el mismo tamaño y en la misma posición:
Si quiere que las celdas se adapten al tamaño de la ventana, deberá utilizar los métodos columnconfigure() y rowconfigure(), tal como aparece en la nueva versión de este mismo programa:
Ejecútelo de nuevo. En este caso, al aumentar el tamaño de la ventana, las celdas crecen para ocupar todo el espacio libre, pero no las etiquetas:
Para que estas ocupen todo el espacio de las celdas, deberá utilizar la opción sticky del método grid(). En el programa anterior, sustituya la sentencia
por esta otra:
El resultado que obtendrá ahora demuestra que tanto las celdas como las etiquetas que hay en su interior se ajustan al tamaño de la ventana en todas las circunstancias:
3.3 EL GESTOR DE GEOMETRÍA PLACE
Este gestor, a diferencia de los dos anteriores, permite colocar los widgets en coordenadas específicas de la ventana principal (o widget contenedor). Para utilizarlo, se debe llamar al siguiente método, disponible en todos los widgets:
place(opciones)
Las opciones de las que dispone son:
•anchor. Indica cómo situar el widget en la ventana, tomando como referencia las coordenadas (x, y) contenidas en las opciones x e y (se describen más abajo). Su valor puede ser N, S, E, W, NE, NW (predeterminado, esquina superior izquierda del widget), SE, SW o CENTER. La siguiente imagen lo muestra gráficamente (el cuadrado representa el widget tal como quedaría ubicado respecto del punto de referencia, dependiendo del valor de esta opción):
•bordermode. Determina si las coordenadas especificadas usan como referencia el interior del widget contenedor (INSIDE, valor por defecto) o el exterior (OUTSIDE).
•height, width. Alto y ancho del widget en píxeles.
•relheight, relwidth. Ancho y alto del widget, tomado de forma relativa al ancho y alto de la ventana principal (o widget contenedor). Por lo tanto, determina sus dimensiones como una fracción de la ventana. Su valor estará comprendido entre 0,0 y 1,0; por ejemplo, si el alto de la ventana principal fuera de 800 píxeles y el valor de la opción relheight de uno de los widgets fuera de 0,25, su alto sería de 200 píxeles. La utilidad de este método es ajustar el tamaño de los widgets al de la ventana (o widget contenedor), cuando esta se modifique.
•x. Coordenada x del punto utilizado como referencia para situar el widget en la ventana principal (o widget contenedor). Su valor viene dado en píxeles. Las coordenadas (0, 0) corresponden a la esquina superior izquierda de la ventana principal (o widget contenedor).
•y. Coordenada y del punto utilizado como referencia para situar el widget en la ventana principal (o widget contenedor).
•relx, rely. Posición relativa, tanto horizontal como vertical, representada como una fracción del alto y ancho de la ventana principal (o widget contenedor). Su valor, de nuevo, estará comprendido entre 0,0 y 1,0; por ejemplo, si el ancho de una ventana fuera de 500 píxeles y relx tuviera el valor 0,5, la coordenada x del widget sería 250. La utilidad de esta opción es mantener la posición de los widgets, aunque cambie el tamaño de la ventana.
Por último, para dejar de mostrar un widget situado previamente en la ventana principal (o widget contenedor), se debe ejecutar el método:
A continuación, se describe el código de un programa que muestra una etiqueta centrada en la ventana principal:
Tras importar las clases Tk y Label del paquete Tkinter, se crea la ventana principal, a la que se asigna un tamaño de 200 × 200 píxeles.
Luego, se crea