# 25. 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, os módulos `tkinter.tix` e `tkinter.ttk`.

O pacote `tkinter` é uma camada fina orientada a objetos sobre Tcl/Tk. Para usar `tkinter`, você não precisa escrever o código Tcl, mas você precisará consultar a documentação do Tk, e ocasionalmente a documentação do Tcl. `tkinter` é um conjunto de wrappers que implementam os widgets Tk como classes Python. Além disso, o módulo interno `_tkinter` fornece um mecanismo de segurança do segmento que permite que o Python e o Tcl interajam.

As principais virtudes do `tkinter` são que ele é rápido e 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ê poderia se interessar. Para mais informações sobre alternativas, veja a seção Outros Pacotes de Interface Gráficas de Usuário.

- 25.1. : mod: tkinter — Interface Python para Tcl / Tk
  - 25.1.1. Módulos Tkinter
  - 25.1.2. Preservador de vida Tkinter
    - 25.1.2.1. Como usar esta seção
    - 25.1.2.2. Um simples programa Olá Mundo
  - 25.1.3. Uma olhada (muito) rápida em Tcl / Tk
  - 25.1.4. Mapeamento de TK Básico para Tkinter
  - 25.1.5. Como Tk e Tkinter estão relacionados
  - 25.1.6. Referência útil
    - 25.1.6.1. Opções de configuração
    - 25.1.6.2. O Empacotador
    - 25.1.6.3. Opções do Empacotador
    - 25.1.6.4. Acoplando Variáveis de Widgets
    - 25.1.6.5. O Gerenciador de Janela
    - 25.1.6.6. Opções de Tipos de Dados do Tk
    - 25.1.6.7. Bindings and Events
    - 25.1.6.8. The index Parameter
    - 25.1.6.9. Images
  - 25.1.7. File Handlers
- 25.2. `tkinter.ttk` — Tk themed widgets
  - 25.2.1. Using Ttk
  - 25.2.2. Ttk Widgets
  - 25.2.3. Widget
    - 25.2.3.1. Standard Options
    - 25.2.3.2. Scrollable Widget Options
    - 25.2.3.3. Label Options
    - 25.2.3.4. Opções de compatibilidade
    - 25.2.3.5. Widget States
    - 25.2.3.6. ttk.Widget
  - 25.2.4. Combobox
    - 25.2.4.1. Options
    - 25.2.4.2. Virtual events
    - 25.2.4.3. ttk.Combobox
  - 25.2.5. Notebook
    - 25.2.5.1. Options
    - 25.2.5.2. Tab Options
    - 25.2.5.3. Tab Identifiers
    - 25.2.5.4. Virtual Events
    - 25.2.5.5. ttk.Notebook
  - 25.2.6. Progressbar
    - 25.2.6.1. Options
    - 25.2.6.2. ttk.Progressbar
  - 25.2.7. Separator
    - 25.2.7.1. Options
  - 25.2.8. Sizegrip
    - 25.2.8.1. Platform-specific notes
    - 25.2.8.2. Bugs
  - 25.2.9. Treeview
    - 25.2.9.1. Options
    - 25.2.9.2. Item Options
    - 25.2.9.3. Tag Options
    - 25.2.9.4. Column Identifiers
    - 25.2.9.5. Virtual Events
    - 25.2.9.6. ttk.Treeview
  - 25.2.10. Ttk Styling
    - 25.2.10.1. Layouts
- 25.3. `tkinter.tix` — Extension widgets for Tk
  - 25.3.1. Using Tix
  - 25.3.2. Tix Widgets
    - 25.3.2.1. Widgets básicos
    - 25.3.2.2. File Selectors
    - 25.3.2.3. Hierarchical ListBox
    - 25.3.2.4. Tabular ListBox
    - 25.3.2.5. Manager Widgets
    - 25.3.2.6. Image Types
    - 25.3.2.7. Miscellaneous Widgets
    - 25.3.2.8. Form Geometry Manager
  - 25.3.3. Comandos Tix
- 25.4. `tkinter.scrolledtext` — Wdiget Scrolled Text
- 25.5. IDLE
  - 25.5.1. Menus
    - 25.5.1.1. Menu Arquivo (Console e Editor)
    - 25.5.1.2. Edit menu (Shell and Editor)
    - 25.5.1.3. Format menu (Editor window only)
    - 25.5.1.4. Run menu (Editor window only)
    - 25.5.1.5. Shell menu (Shell window only)
    - 25.5.1.6. Debug menu (Shell window only)
    - 25.5.1.7. Options menu (Shell and Editor)
    - 25.5.1.8. Window menu (Shell and Editor)
    - 25.5.1.9. Help menu (Shell and Editor)
    - 25.5.1.10. Context Menus
  - 25.5.2. Editing and navigation
    - 25.5.2.1. Editor windows
    - 25.5.2.2. Teclas de atalho
    - 25.5.2.3. Automatic indentation
    - 25.5.2.4. Completions
    - 25.5.2.5. Calltips
    - 25.5.2.6. Python Shell window
    - 25.5.2.7. Text colors
  - 25.5.3. Startup and code execution
    - 25.5.3.1. Uso na linha de comando
    - 25.5.3.2. Startup failure
    - 25.5.3.3. Running user code
    - 25.5.3.4. User output in Shell
    - 25.5.3.5. Developing tkinter applications
    - 25.5.3.6. Running without a subprocess
  - 25.5.4. Help and preferences
    - 25.5.4.1. Help sources
    - 25.5.4.2. Setting preferences
    - 25.5.4.3. IDLE on macOS
    - 25.5.4.4. Extensions
- 25.6. Outros Pacotes de Interface Gráficas de Usuário