Python 3 - Programación GUI (Tkinter)

Python proporciona varias opciones para desarrollar interfaces gráficas de usuario (GUI). Las características más importantes se enumeran a continuación.

  • Tkinter- Tkinter es la interfaz de Python para el kit de herramientas de la GUI de Tk que se envía con Python. Buscaríamos esta opción en este capítulo.

  • wxPython- Esta es una interfaz Python de código abierto para el kit de herramientas GUI wxWidgets. Puede encontrar un tutorial completo sobre WxPython aquí .

  • PyQt−Esta es también una interfaz Python para una popular biblioteca Qt GUI multiplataforma. TutorialsPoint tiene un muy buen tutorial sobre PyQt aquí .

  • JPython - JPython es un puerto de Python para Java, que brinda a los scripts de Python un acceso transparente a las bibliotecas de clases de Java en la máquina local. http://www.jython.org.

Hay muchas otras interfaces disponibles, que puede encontrar en la red.

Programación Tkinter

Tkinter es la biblioteca GUI estándar para Python. Python cuando se combina con Tkinter proporciona una forma rápida y fácil de crear aplicaciones GUI. Tkinter proporciona una potente interfaz orientada a objetos para el kit de herramientas Tk GUI.

Crear una aplicación GUI usando Tkinter es una tarea fácil. Todo lo que necesita hacer es realizar los siguientes pasos:

  • Importe el módulo Tkinter .

  • Cree la ventana principal de la aplicación GUI.

  • Agregue uno o más de los widgets mencionados anteriormente a la aplicación GUI.

  • Ingrese al bucle de eventos principal para tomar medidas contra cada evento desencadenado por el usuario.

Ejemplo

#!/usr/bin/python3

import tkinter # note that module name has changed from Tkinter in Python 2 to tkinter in Python 3
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

Esto crearía una ventana siguiente:

Widgets de Tkinter

Tkinter proporciona varios controles, como botones, etiquetas y cuadros de texto utilizados en una aplicación GUI. Estos controles se denominan comúnmente widgets.

Actualmente hay 15 tipos de widgets en Tkinter. Presentamos estos widgets, así como una breve descripción en la siguiente tabla:

No Señor. Operador y descripción
1 Botón

El widget Botón se utiliza para mostrar los botones en su aplicación.

2 Lona

El widget Canvas se utiliza para dibujar formas, como líneas, óvalos, polígonos y rectángulos, en su aplicación.

3 Botón de verificación

El widget de botón de verificación se utiliza para mostrar una serie de opciones como casillas de verificación. El usuario puede seleccionar varias opciones a la vez.

4 Entrada

El widget de entrada se utiliza para mostrar un campo de texto de una sola línea para aceptar valores de un usuario.

5 Marco

El widget Frame se utiliza como widget contenedor para organizar otros widgets.

6 Etiqueta

El widget de etiqueta se utiliza para proporcionar un título de una sola línea para otros widgets. También puede contener imágenes.

7 Cuadro de lista

El widget Listbox se utiliza para proporcionar una lista de opciones a un usuario.

8 Botón de menú

El widget Menubutton se utiliza para mostrar menús en su aplicación.

9 Menú

El widget de menú se utiliza para proporcionar varios comandos a un usuario. Estos comandos están contenidos dentro de Menubutton.

10 Mensaje

El widget de mensaje se utiliza para mostrar campos de texto de varias líneas para aceptar valores de un usuario.

11 Boton de radio

El widget Radiobutton se utiliza para mostrar una serie de opciones como botones de opción. El usuario puede seleccionar solo una opción a la vez.

12 Escala

El widget Escala se utiliza para proporcionar un control deslizante.

13 Barra de desplazamiento

El widget de barra de desplazamiento se utiliza para agregar capacidad de desplazamiento a varios widgets, como cuadros de lista.

14 Texto

El widget de texto se utiliza para mostrar texto en varias líneas.

15 Nivel superior

El widget de nivel superior se utiliza para proporcionar un contenedor de ventana independiente.

dieciséis Spinbox

El widget Spinbox es una variante del widget Tkinter Entry estándar, que se puede utilizar para seleccionar entre un número fijo de valores.

17 PanedWindow

Un PanedWindow es un widget contenedor que puede contener cualquier número de paneles, dispuestos horizontal o verticalmente.

18 LabelFrame

Un labelframe es un widget contenedor simple. Su propósito principal es actuar como espaciador o contenedor para diseños de ventanas complejos.

19 tkMessageBox

Este módulo se utiliza para mostrar cuadros de mensajes en sus aplicaciones.

Atributos estándar

Veamos cómo se especifican algunos de sus atributos comunes, como tamaños, colores y fuentes.

  • Dimensions

  • Colors

  • Fonts

  • Anchors

  • Estilos de relieve

  • Bitmaps

  • Cursors

Gestión de geometría

Todos los widgets de Tkinter tienen acceso a los métodos de gestión de geometría específicos, que tienen el propósito de organizar los widgets en todo el área principal de widgets. Tkinter expone las siguientes clases de administradores de geometría: paquete, cuadrícula y lugar.

  • El método pack () : este administrador de geometría organiza los widgets en bloques antes de colocarlos en el widget principal.

  • El método grid () : este administrador de geometría organiza los widgets en una estructura similar a una tabla en el widget principal.

  • El método place () : este administrador de geometría organiza los widgets colocándolos en una posición específica en el widget principal.