Tkinter

Tkinter es un binding de la biblioteca gráfica Tcl/Tk para el lenguaje de programación Python. Se considera un estándar de interfaz gráfica de usuario (GUI) para Python y está incluido por defecto con la instalación para Microsoft Windows.

Hoy en día, hay otras alternativas disponibles como wxPython, PySimpleGUI, PyQt, PySide y PyGTK que cumplen con todos los estándares de componente visual.

Ejemplo

Para mostrar el texto “¡Hola mundo!” en una ventana:

#!/usr/bin/env python3
from tkinter import Label, Tk

apl = Tk()
texto = Label(apl, text="¡Hola mundo!")
texto.pack()
apl.mainloop()

Para Python 2, la única diferencia es la capitalización de la palabra tkinter en el comando de importación.

Con el paso del tiempo, se ha cambiado el código para invocar esta biblioteca y varios de sus módulos.

Proceso

Cada widget, para ser mostrado en pantalla, puede atravesar (en orden variable) por las siguientes etapas:

  • Creación: el elemento es instanciado dentro de un marco.
  • Configuración: se cambian sus atributos.
  • Empaquetado: se le posiciona para hacerlo visible.
  • Vinculación: se le “ata” una función o evento.[1]

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 clase Frame 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 de main 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.

Véase también

Referencias

  1. «GUI Programming with Python: Events and Binds». www.python-course.eu. Consultado el 26 de mayo de 2020. 
  2. «PEP 397 -- Python launcher for Windows». Python.org (en inglés). Consultado el 26 de mayo de 2020. 

Enlaces externos (en inglés)

Enlaces externos (en español)

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.