Tkinter - Tkinter

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 de la GUI de Tk, y es la GUI estándar de facto de Python . Tkinter se incluye con las instalaciones estándar de GNU / Linux , Microsoft Windows y macOS de Python.

El nombre Tkinter proviene de la interfaz Tk . Tkinter fue escrito por Fredrik Lundh.

Tkinter es un software gratuito publicado bajo una licencia de Python .

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 populares de bibliotecas GUI 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. Estará decorado 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 de 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 (una sola línea), 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. Esto permite que los widgets de Tk sean fácilmente temáticos para que se parezcan 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

Cuadro

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:

#!/usr/bin/env python3
from tkinter import *
root = Tk() 							# Create the root (base) window 
w = Label(root, text="Hello, world!") 	# Create a label with words
w.pack() 								# Put the label into the window
root.mainloop() 						# Start the event loop

Para Python 2, la única diferencia es que la palabra "tkinter" en el comando de importación se escribirá con mayúscula en " Tkinter ".

Proceso

Hay cuatro etapas para crear un widget

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 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='Hello World')
        self.mondialLabel.config(bg="#00ffff")
        self.mondialLabel.grid()
        self.quitButton = tk.Button(self, text='Quit', command=self.quit)
        self.quitButton.grid()


app = Application()
app.master.title('Sample application')
app.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.
  • 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

enlaces externos