Tkinter es un enlace de Python al kit de herramientas de la GUI de Tk . Es la interfaz estándar de Python para el kit de herramientas Tk GUI, [1] y es la GUI estándar de facto de Python . [2] Tkinter se incluye con las instalaciones estándar de Linux , Microsoft Windows y Mac OS X de Python.
El nombre Tkinter proviene de la interfaz Tk . Tkinter fue escrito por Fredrik Lundh. [3]
Tkinter es un software gratuito publicado bajo una licencia de Python . [4]
Descripción
Al igual que con la mayoría de los otros enlaces Tk modernos, Tkinter se implementa como un envoltorio de Python alrededor de un intérprete de Tcl completo incrustado en el intérprete de Python . Las llamadas de Tkinter se traducen en comandos Tcl, que se envían a este intérprete integrado, lo que hace posible mezclar Python y Tcl en una sola aplicación.
Hay varias alternativas de biblioteca GUI populares disponibles, como wxPython , PyQt , PySide , Pygame , Pyglet y PyGTK .
Algunas definiciones
Ventana
Este término tiene diferentes significados en diferentes contextos, pero en general se refiere a un área rectangular en algún lugar de la pantalla del usuario.
Ventana de nivel superior
Una ventana que actúa como hija de la ventana principal. Se decorará con el marco estándar y los controles del administrador de escritorio . Se puede mover por el escritorio y, por lo general, se puede cambiar su tamaño.
Widget
Término genérico para cualquiera de los componentes básicos que componen una aplicación en una interfaz gráfica de usuario.
- Widgets principales: Los contenedores: marco, labelframe, nivel superior, ventana encuadrada. Los botones: botón, botón de radio, botón de verificación (casilla de verificación) y botón de menú. Los widgets de texto: etiqueta, mensaje, texto. Los widgets de entrada: escala, barra de desplazamiento, cuadro de lista, control deslizante, cuadro de número, entrada (línea única), menú de opciones, texto (varias líneas) y lienzo (gráficos vectoriales y de píxeles).
- Tkinter proporciona tres módulos que permiten que se muestren cuadros de diálogo emergentes: tk.messagebox (cuadros de diálogo de confirmación, información, advertencia y error), tk.filedialog (cuadros de diálogo de selección de un solo archivo, varios archivos y directorios) y tk.colorchooser (selector de color) .
- Python 2.7 y Python 3.1 incorporan la funcionalidad "temática Tk" ("ttk") de Tk 8.5. [5] [6] Esto permite que los widgets de Tk sean fácilmente temáticos para parecerse al entorno de escritorio nativo en el que se ejecuta la aplicación, abordando así una crítica de larga data de Tk (y por lo tanto de Tkinter). Algunos widgets son exclusivos de ttk, como los widgets combobox, progressbar y treeview
Marco
En Tkinter, el widget Frame es la unidad básica de organización para diseños complejos. Un marco es un área rectangular que puede contener otros widgets.
Niño y padre
Cuando se crea cualquier widget, se crea una relación padre-hijo. Por ejemplo, si coloca una etiqueta de texto dentro de un marco, el marco es el padre de la etiqueta.
Una aplicación mínima
Aquí hay una aplicación mínima de Python 3 Tkinter con un widget: [7]
#! / usr / bin / env python3desde tkinter import *root = Tk () # Crea la ventana raíz (base)w = Label ( root , text = "¡Hola, mundo!" ) # Crea una etiqueta con palabrasw . pack () # Pon la etiqueta en la ventanaraíz . mainloop () # Inicia el ciclo de eventos
Para Python 2, la única diferencia es que la palabra "tkinter" en el comando de importación se escribirá con mayúscula en " Tkinter ". [8]
Proceso
Hay cuatro etapas para crear un widget [9]
- Crear
- créalo dentro de un marco
- Configurar
- cambiar los atributos de los widgets.
- Paquete
- empáquelo en su posición para que sea visible. Los desarrolladores también tienen la opción de usar .grid () (fila = int , columna = int para definir filas y columnas para posicionar el widget, por defecto es 0) y .place () (relx = int o decimal , confía = int o decimal , definir coordenadas en el marco o ventana).
- Unir
- vincularlo a una función o evento.
Suelen estar comprimidos y el orden puede variar.
Aplicación sencilla
Usando el paradigma orientado a objetos en Python, un programa simple sería (requiere Tcl versión 8.6, que no es usado por Python en MacOS por defecto):
#! / usr / bin / env python3importar tkinter como tk Aplicación de clase ( tk . Frame ): def __init__ ( self , master = None ): tk . Marco . __init__ ( yo , maestro ) yo . cuadrícula () yo . createWidgets () def createWidgets ( uno mismo ): yo . mondialLabel = tk . Etiqueta ( self , text = 'Hola mundo' ) yo . mondialLabel . config ( bg = "# 00ffff" ) yo . mondialLabel . cuadrícula () yo . quitButton = tk . Botón ( auto , texto = 'Salir' , comando = auto . Dejar de fumar ) yo . quitButton . cuadrícula ()app = Aplicación ()aplicación . amo . title ( 'Aplicación de muestra' )aplicación . mainloop ()
- línea 1: directiva Hashbang para el lanzador del programa, que permite la selección de un ejecutable intérprete apropiado, cuando se autoejecuta. [10]
- línea 3: Importa el módulo tkinter en el espacio de nombres de su programa, pero lo renombra como tk.
- línea 6: la clase de aplicación hereda de la clase Frame de Tkinter.
- línea 8: define la función que configura el marco.
- línea 9: llama al constructor de la clase padre, Frame.
- línea 13: Definición de los widgets.
- línea 14: Crea una etiqueta, llamada MondialLabel con el texto "Hello World".
- línea 15: establece el color de fondo de MondialLabel en cian.
- línea 16: coloca la etiqueta en la aplicación para que sea visible utilizando el método del administrador de geometría de cuadrícula.
- línea 17: Crea un botón con la etiqueta "Salir".
- línea 18: coloca el botón en la aplicación. La cuadrícula, el lugar y el paquete son métodos para hacer visible el widget.
- línea 21: El programa principal comienza aquí instanciando la clase Application.
- línea 22: esta llamada al método establece el título de la ventana en "Aplicación de muestra".
- línea 23: Inicia el bucle principal de la aplicación, esperando eventos de mouse y teclado.
Referencias
- ^ "Tkinter - Interfaz de Python a Tcl / Tk - Documentación de Python v2.6.1" . Consultado el 12 de marzo de 2009 .
- ^ "Tkinter - Wiki de Pythoninfo" .
- ^ Shipman, John W. (2010-12-12), Tkinter reference: a GUI for Python , New Mexico Tech Computer Center , consultado el 11 de enero de 2012
- ^ "Copia archivada" . Archivado desde el original el 13 de noviembre de 2013 . Consultado el 13 de noviembre de 2013 .CS1 maint: copia archivada como título ( enlace )
- ^ "Problema de Python # 2983," Soporte de Ttk para Tkinter " " .
- ^ "Python subversion revisión 69051, que resuelve el problema # 2983 agregando el módulo ttk" .
- ^ "Referencia de Tkinter 8.5: una GUI para Python" .
- ^ Fleck, Dan. "Tkinter - GUI en Python" (PDF) . CS112 . Universidad George Mason . Consultado el 18 de agosto de 2018 .
- ^ Klein, Bernd. "Programación GUI con Python: eventos y enlaces" . www.python-course.eu . Consultado el 18 de agosto de 2018 .
- ^ "PEP 397 - Lanzador de Python para Windows - Python.org" . Consultado el 7 de junio de 2017 .
enlaces externos
- TkInter , Python Wiki
- Tutorial de GUI de Tkinter , cubre cada widget individualmente.
- Lundh, Fredrik (1999), Introducción a Tkinter
- TkDocs : incluye información de lenguaje neutro y específica de Python y un tutorial
- Ferg, Stephen, pensando en Tkinter