# Graphical user interfaces with Tk

Tk/Tcl has long been an integral part of Python. It provides a robust and platform independent windowing toolkit, that is available to Python programmers using the `tkinter` package, and its extension, the `tkinter.ttk` module.

El paquete `tkinter` es una fina capa orientada a objetos encima de Tcl/Tk. Para usar `tkinter`, no necesita escribir código Tcl, pero deberá consultar la documentación de Tk y, ocasionalmente, la documentación de Tcl. `tkinter` es un conjunto de envoltorios que implementan los widgets Tk como clases de Python.

Las principales virtudes de `tkinter` son que es rápido y que generalmente viene incluido con Python. Aunque su documentación estándar es débil, se dispone de buen material, que incluye: referencias, tutoriales, un libro y otros. `tkinter` también es famoso por tener un aspecto y una sensación obsoletos, que se ha mejorado enormemente en Tk 8.5. Sin embargo, hay muchas otras bibliotecas GUI en las que podría estar interesado. La wiki de Python enumera varias GUI frameworks and tools alternativas.

- `tkinter` — Python interface to Tcl/Tk
  - Arquitectura
  - Módulos Tkinter
  - Guía de supervivencia de Tkinter
    - Un programa simple de Hola Mundo
    - Conceptos importantes de Tk
    - Entendiendo como funcionan los empaquetadores de Tcl/Tk
    - ¿Cómo lo hago?, ¿Cómo funciona?
    - Navegando en el manual de referencia de Tcl/Tk
  - Modelo de subprocesamiento
  - Guía práctica
    - Configuración de opciones
    - El empaquetador
    - Opciones del empaquetador
    - Asociación de variables de widget
    - El gestor de ventanas
    - Tipos de datos de opciones Tk
    - Enlaces y eventos
    - El parámetro índice
    - Imágenes
  - Gestor de archivos
- `tkinter.colorchooser` — Color choosing dialog
- `tkinter.font` — Tkinter font wrapper
- Diálogos tkinter
  - `tkinter.simpledialog` —Diálogos de entrada estándar de Tkinter
  - Diálogos de selección de archivos
    - Diálogos nativos de carga/guardado
  - `tkinter.commondialog` — Plantillas de ventanas de diálogo
- `tkinter.messagebox` — Tkinter message prompts
- `tkinter.scrolledtext` — Scrolled Text Widget
- `tkinter.dnd` — Drag and drop support
- `tkinter.ttk` — Tk themed widgets
  - Uso de Ttk
  - Ttk widgets
  - Widget
    - Opciones estándar
    - Opciones de widgets desplegables
    - Opciones de etiqueta
    - Opciones de compatibilidad
    - Estados del widget
    - ttk.Widget
  - Combobox
    - Opciones
    - Eventos virtuales
    - ttk.Combobox
  - Spinbox
    - Opciones
    - Eventos virtuales
    - ttk.Spinbox
  - Notebook
    - Opciones
    - Opciones de pestañas
    - Identificadores de pestañas
    - Eventos virtuales
    - ttk.Notebook
  - Progressbar
    - Opciones
    - ttk.Progressbar
  - Separator
    - Opciones
  - Sizegrip
    - Notas específicas por plataforma
    - Errores detectados
  - Treeview
    - Opciones
    - Opciones de elementos
    - Opciones de etiqueta
    - Identificadores de columna
    - Eventos virtuales
    - ttk.Treeview
  - Ttk Styling
    - Diseños
- IDLE — Python editor and shell
  - Menús
    - Menú de archivo (Shell y Editor)
    - Menú editar (Shell y Editor)
    - Menú de formato (solo ventana del Editor)
    - Menú ejecutar (solo ventana Editor)
    - Menú de shell (solo ventana de shell)
    - Menú de depuración (solo ventana de shell)
    - Menú de opciones (Shell y editor)
    - Menú de ventana (shell y editor)
    - Menú de ayuda (shell y editor)
    - Menús contextuales
  - Edición y navegación
    - Ventana del editor
    - Atajos de teclado
    - Indentación automática
    - Buscar y reemplazar
    - Terminaciones
    - Sugerencias de llamada
    - Format block
    - Contexto del código
    - Ventana de Shell
    - Colores del texto
  - Inicio y ejecución de código
    - Command-line usage
    - Error de inicio
    - Ejecutando código del usuario
    - Salida del usuario en consola
    - Desarrollando aplicaciones tkinter
    - Ejecutando sin un subproceso
  - Ayuda y preferencias
    - Recursos de ayuda
    - Preferencias de configuración
    - IDLE en macOS
    - Extensiones
  - idlelib — implementation of IDLE application
- `turtle` — Turtle graphics
  - Introducción
  - Empezar
  - Tutorial
    - Iniciando un entorno para tortugas
    - Dibujo básico
      - Control del lápiz
      - La posición de la tortuga
    - Creando patrones algorítmicos
  - Cómo…
    - Empiece lo antes posible
    - Utilice el espacio de nombres del módulo `turtle`
    - Utilice gráficos de tortugas en un guión
    - Utilice gráficos de tortuga orientados a objetos
  - Referencia gráficos de tortugas
    - Métodos Turtle
    - Métodos de TurtleScreen/Screen
  - Métodos de RawTurtle/Turtle Y sus correspondientes funciones
    - Movimiento de Turtle
    - Mostrar el estado de la tortuga
    - Configuración de las medidas
    - Control del lápiz
      - Estado de dibujo
      - Control del color
      - Relleno
      - Más controles de dibujo
    - Estado de la Tortuga
      - Visibilidad
      - Apariencia
    - Usando eventos
    - Métodos especiales de Turtle
    - Formas compuestas
  - Métodos de TurtleScreen/Screen y sus correspondientes funciones
    - Control de ventana
    - Control de animación
    - Usando eventos de pantalla
    - Métodos de entrada
    - Configuración y métodos especiales
    - Métodos específicos de Screen, no heredados de TurtleScreen
  - Clases públicas
  - Explicación
  - Ayuda y configuración
    - Cómo usar la ayuda
    - Traducción de cadenas de documentos a diferentes idiomas
    - Cómo configurar Screen and Turtles
  - `turtledemo` — Scripts de demostración
  - Cambios desde Python 2.6
  - Cambios desde Python 3.0