Tkinter
Tkinter es un binding de la biblioteca gráfica Tcl/Tk para el lenguaje de programación Python. Se considera un estándar para la interfaz gráfica de usuario (GUI) para Python y es el que viene por defecto con la instalación para Microsoft Windows.
Hoy en día hay otras alternativas disponibles como wxPython, PySimpleGUI, PyQt o PySide y PyGTK que cumplen con todos los estándares de componente visual.
Ejemplo
Antiguas Versiones:
#!/usr/bin/env python2
from Tkinter import * # Importar el modulo
apl = Tk() # Crear la ventana raíz (base)
texto = Label(apl, text="Hola Mundo!") # Crear una etiqueta con texto
texto.pack() # Poner la etiqueta en la ventana
apl.mainloop() # Iniciar el bucle de eventos
Nuevas Versiones:
#!/usr/bin/env python3
from tkinter import *
apl = Tk()
texto = Label(apl, text="Hola Mundo!")
texto.pack()
apl.mainloop()
Para Python 2, la única diferencia es que la palabra tkinter
se escribirá en minúscula en el comando de importación, se escribirá con mayúscula Tkinter
en Python 3. Con el paso del tiempo se ha cambiado el código para invocar esta biblioteca y ciertos módulos de ella también.
Proceso
Hay cuatro etapas para crear un widget
Creación
Crearlo dentro de un marco
Configuración
Cambiar los atributos de los widgets
Empaquetar
Se empaca en su posición para que se haga visible
Aplicación simple
Usando el paradigma orientado a objetos en Python, un programa simple sería (requiere la versión 8.6 de Tcl, que no es usada por Python en MacOS por defecto):
#!/usr/bin/env python3
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.createWidgets()
def createWidgets(self):
self.mondialLabel = tk.Label(self, text='Hola, Mundo!')
self.mondialLabel.config(bg="#00ffff")
self.mondialLabel.grid()
self.quitButton = tk.Button(self, text='Quit', command=self.quit)
self.quitButton.grid()
if __name__ == '__main__':
app = Application()
app.master.title('Aplicación de muestra')
app.mainloop()
- línea 1: Directiva Hashbang al ejecutable del programa, permitiendo la selección de un intérprete apropiado ejecutable, cuando se autoejecute.[2]
- línea 2: Esta línea importa el módulo tkinter en el espacio de nombres de su programa, pero lo renombra como tk.
- línea 4: La clase
Application
hereda de la claseFrame
de Tkinter. - línea 5: Define la función que establece el Frame (Marco).
- línea 6: Llama al constructor de la clase de padre,
Frame
. - línea 10: Definiendo los widgets.
- línea 11: Crea una etiqueta, llamada
mondialLabel
con el texto "Hola Mundo". - línea 13: Coloca la etiqueta en la aplicación para que sea visible usando el método del administrador de la geometría de la cuadrícula.
- línea 14: Crea un botón con la etiqueta "Salir".
- línea 15: Coloca el botón en la aplicación. La cuadrícula, el lugar y el paquete son todos métodos para hacer visible el widget
- línea 17: Se indica al intérprete que asigne al atributo
__name__
el valor demain
indicando que es el archivo principal. - línea 18: El programa principal comienza aquí instanciando la clase de aplicación.
- línea 19: Esta llamada al método establece el título de la ventana como "Aplicación de muestra".
- línea 20: Inicia el bucle principal de la aplicación, esperando eventos de ratón y teclado.
Referencias
- «GUI Programming with Python: Events and Binds». www.python-course.eu. Consultado el 26 de mayo de 2020.
- «PEP 397 -- Python launcher for Windows». Python.org (en inglés). Consultado el 26 de mayo de 2020.
Enlaces externos (en inglés)
- Sitio Web de Tkinter
- Introducción a TkinterArchivado el 22 de octubre de 2012 en Wayback Machine.
- referencias de Tkinter; un GUI para Python
- Pensando en Tkinter