# Interfaces gráficas de usuário com Tk

Tk/Tcl tem sido parte integrante do Python. Ele fornece um kit de ferramentas de janela robusto e independente de plataforma, que está disponível para programadores Python usando o pacote `tkinter` e sua extensão, o módulo `tkinter.ttk`.

O pacote `tkinter` é uma fina camada orientada a objetos no topo do Tcl/Tk. Para usar `tkinter`, você não precisa escrever o código Tcl, mas precisará consultar a documentação do Tk e, ocasionalmente, a documentação do Tcl. `tkinter` é um conjunto de envólucros que implementam os widgets Tk como classes Python.

As principais virtudes do `tkinter` são que ele é rápido, e que geralmente vem junto com o Python. Embora sua documentação padrão seja fraca, um bom material está disponível, que inclui: referências, tutoriais, um livro e outros. `tkinter` também é famoso por ter uma aparência desatualizada, que foi amplamente melhorada no Tk 8.5. No entanto, existem muitas outras bibliotecas GUI nas quais você pode estar interessado. A wiki do Python lista várias frameworks e ferramentas GUI alternativas.

- `tkinter` — Interface Python para Tcl/Tk
  - Arquitetura
  - Módulos Tkinter
  - Preservador de vida Tkinter
    - Um programa Olá Mundo
    - Conceitos importantes do Tk
    - Entendendo como Tkinter envolve Tcl/Tk
    - Como é que eu…? Que opção faz…?
    - Navegando no Manual de Referência Tcl/Tk
  - Modelo de threading
  - Referência Útil
    - Opções de Definição
    - O Empacotador
    - Opções do Empacotador
    - Acoplando Variáveis de Widgets
    - O Gerenciador de Janela
    - Opções de Tipos de Dados do Tk
    - Ligações e Eventos
    - O Parâmetro index
    - Imagens
  - Tratadores de arquivos
- `tkinter.colorchooser` — Diálogo de escolha de cor
- `tkinter.font` — Invólucro de fontes Tkinter
- Diálogos Tkinter
  - `tkinter.simpledialog` — Standard Tkinter input dialogs
  - `tkinter.filedialog` — File selection dialogs
    - Caixas de diálogo nativos de carregar/salvar
  - `tkinter.commondialog` — Dialog window templates
- `tkinter.messagebox` — Prompts de mensagem do Tkinter
- `tkinter.scrolledtext` — Widget de texto de rolado
- `tkinter.dnd` — Suporte para arrastar e soltar
- `tkinter.ttk` — Widgets temáticos do Tk
  - Usando Ttk
  - Widgets Ttk
  - Widget
    - Opções padrão
    - Opções de ferramenta rolável
    - Opções de rótulo
    - Opções de compatibilidade
    - Estados de Widget
    - ttk.Widget
  - Combobox
    - Opções
    - Eventos virtuais
    - ttk.Combobox
  - Spinbox
    - Opções
    - Eventos virtuais
    - ttk.Spinbox
  - Notebook
    - Opções
    - Tab Options
    - Tab Identifiers
    - Virtual Events
    - ttk.Notebook
  - Progressbar
    - Opções
    - ttk.Progressbar
  - Separator
    - Opções
  - Sizegrip
    - Platform-specific notes
    - Bugs
  - Treeview
    - Opções
    - Item Options
    - Tag Options
    - Column Identifiers
    - Virtual Events
    - ttk.Treeview
  - Ttk Styling
    - Layouts
- IDLE — Editor e console Python
  - Menus
    - Menu File (Console e editor)
    - Menu Edit (Shell e Editor)
    - Menu Format (Somente na janela do Editor)
    - Menu Run (Somente na janela do Editor)
    - Shell menu (Shell window only)
    - Debug menu (Shell window only)
    - Options menu (Shell and Editor)
    - Window menu (Shell and Editor)
    - Help menu (Shell and Editor)
    - Context menus
  - Editing and Navigation
    - Editor windows
    - Teclas de atalho
    - Indentação automática
    - Busca e Substituição
    - Completions
    - Dicas de chamada
    - Format block
    - Code Context
    - Shell window
    - Text colors
  - Startup and Code Execution
    - Uso na linha de comando
    - Startup failure
    - Running user code
    - User output in Shell
    - Developing tkinter applications
    - Running without a subprocess
  - Help and Preferences
    - Help sources
    - Setting preferences
    - IDLE on macOS
    - Extensions
  - idlelib — implementation of IDLE application
- `turtle` — Gráficos tartaruga
  - Introdução
  - Começando
  - Tutorial
    - Iniciando um ambiente da tartaruga
    - Desenho básico
      - Controle da Caneta
      - A posição da tartaruga
    - Criação de padrões algorítmicos
  - Como fazer…
    - Comece o mais rápido possível
    - Inicie e encerre o preenchimento automaticamente
    - Use o espaço de nomes do módulo `turtle`
    - Use o módulo gráfico de tartaruga dentro de um script com código específico
    - Use o módulo gráficos da tartaruga orientado a objetos
  - Referência Gráficos de Tartaruga
    - Métodos de Turtle
    - Métodos de TurtleScreen/Screen
  - Métodos de RawTurtle/Turtle e funções correspondentes
    - Movimentos de Turtle
    - Fala o estado de Turtle
    - Configurações de medida
    - Controle da Caneta
      - Estado do Desenho
      - Controle da Cor
      - Preenchimento
      - Mais sobre o Controle do Desenho
    - Estado da tartaruga
      - Visibilidade
      - Aparência
    - Eventos Utilizados
    - Métodos Especiais da Tartaruga
    - Formas compostas
  - métodos do TurtleScreen/Screen e as funções correspondentes
    - Controle da Janela
    - Controle da animação
    - Usando os eventos de tela
    - Métodos de entrada
    - Configurações e métodos especiais
    - Métodos específico do Screen, estes métodos não são herdados do TurtleScreen
  - Classes Públicas
  - Explicação
  - Ajuda e Configuração
    - Como usar a Ajuda
    - Tradução de docstrings em diferentes idiomas
    - Como configurar Screen and Turtles
  - `turtledemo` — Demo scripts
  - Modificações desde a versão do Python 2.6
  - Modificações desde a versão do Python 3.0