Programación GUI en Python (Tkinter)
Python proporciona varias bibliotecas para el desarrollo de interfaces gráficas. Algunas bibliotecas GUI de Python de uso común son:
Tkinter:El módulo Tkinter (interfaz Tk) es la interfaz del kit de herramientas GUI Tk estándar de Python. Tk y Tkinter se pueden usar en la mayoría de las plataformas Unix, y también se pueden aplicar en sistemas Windows y Macintosh. Las versiones posteriores a Tk8.0 pueden implementar estilos de ventana nativos y funcionar bien en la gran mayoría de las plataformas.
wxPython:wxPython es un software de código abierto y una excelente biblioteca de gráficos GUI para el lenguaje Python, que permite a los programadores de Python crear fácilmente interfaces de usuario GUI completas y totalmente funcionales.
Jython:Los programas Jython se pueden integrar perfectamente con Java. Además de algunos módulos estándar, Jython utiliza módulos de Java. Jython tiene casi todos los módulos de Python estándar que no dependen del lenguaje C. Por ejemplo, la interfaz de usuario de Jython utilizará Swing, AWT o SWT. Jython se puede compilar de forma dinámica o estática en bytecode de Java.
Programación con Tkinter
Tkinter es la biblioteca GUI estándar de Python. Python puede crear rápidamente aplicaciones GUI usando Tkinter.
Dado que Tkinter está integrado en el paquete de instalación de Python, solo necesita instalar Python para poder importar la biblioteca Tkinter, y IDLE también está escrito con Tkinter. Para interfaces gráficas simples, Tkinter puede manejarlas sin problemas.
Nota: El nombre de la biblioteca utilizada en la versión Python3.x es tkinter, es decir, la primera letra T está en minúscula.
import tkinter
Crear un programa GUI
- 1. Importar el módulo Tkinter
- 2. Crear el control
- 3. Especificar el master de este control, es decir, a qué pertenece este control
- 4. Informar al GM (geometry manager) que se ha creado un control.
Ejemplo (Python3.x)
Ejemplo (Python2.x)
El resultado de ejecutar el código anterior se muestra en la siguiente figura:
Ejemplo
El resultado de ejecutar el código anterior se muestra en la siguiente figura:
Componentes de Tkinter
Tkinter proporciona varios controles, como botones, etiquetas y cuadros de texto, que se utilizan en una aplicación GUI. Estos controles suelen denominarse controles o widgets.
Actualmente hay 15 widgets de Tkinter. Presentamos estos widgets junto con una breve descripción en la siguiente tabla:
| Control | Descripción |
|---|---|
| Button | Control de botón; muestra un botón en el programa. |
| Canvas | Control de lienzo; muestra elementos gráficos como líneas o texto. |
| Checkbutton | Control de casilla de verificación; se utiliza para proporcionar casillas de selección múltiple en el programa. |
| Entry | Control de entrada; se utiliza para mostrar contenido de texto simple. |
| Frame | Control de marco; muestra un área rectangular en la pantalla, utilizado principalmente como contenedor. |
| Label | Control de etiqueta; puede mostrar texto y mapas de bits. |
| Listbox | Control de lista; el widget Listbox se utiliza para mostrar una lista de cadenas al usuario. |
| Menubutton | Control de botón de menú; se utiliza para mostrar elementos de menú. |
| Menu | Control de menú; muestra barras de menú, menús desplegables y menús emergentes. |
| Message | Control de mensaje; se utiliza para mostrar texto de varias líneas, similar a la etiqueta. |
| Radiobutton | Control de botón de opción; muestra el estado de un botón de selección única. |
| Scale | Control de escala; muestra una escala numérica para limitar el rango de números de salida. |
| Scrollbar | Control de barra de desplazamiento; se utiliza cuando el contenido excede el área visible, como en una lista. |
| Text | Control de texto; se utiliza para mostrar texto de varias líneas. |
| Toplevel | Control de contenedor; se utiliza para proporcionar un cuadro de diálogo independiente, similar a Frame. |
| Spinbox | Control de entrada; similar a Entry, pero se puede especificar un rango de valores de entrada. |
| PanedWindow | PanedWindow es un complemento de gestión de diseño de ventanas que puede contener uno o más subcontroles. |
| LabelFrame | labelframe es un control de contenedor simple. Se usa a menudo para diseños de ventanas complejos. |
| tkMessageBox | Se utiliza para mostrar el cuadro de mensaje de su aplicación. |
Atributos estándar
Los atributos estándar son atributos comunes a todos los controles, como el tamaño, la fuente y el color, etc.
| Atributo | Descripción |
| Dimension | Tamaño del control; |
| Color | Color del control; |
| Font | Fuente del control; |
| Anchor | Punto de anclaje; |
| Relief | Estilo del control; |
| Bitmap | Mapa de bits; |
| Cursor | Cursor; |
Gestión geométrica
Los controles de Tkinter tienen métodos específicos de gestión de estado geométrico que organizan toda el área de controles. Las siguientes son las clases de gestión geométrica que Tkinter expone: pack, grid, place.
| Método geométrico | Descripción |
| pack() | Pack; |
| grid() | Grid; |
| place() | Place; |