📊 Capítulo 17: Interfaces Gráficas com CustomTkinter
Especialização em Sistemas com Python
🗺️ O Loop de Eventos da GUI e o Desacoplamento de Tarefas Lentas
flowchart TD
MAIN["Thread Principal da GUI (ctk.CTk / mainloop())"]
--> EVENT["Usuário Clica no Botão 'Exportar Relatório'"]
EVENT --> CHECK{"Como processar a exportação?"}
CHECK -- "Executar na Thread da GUI ❌" --> FREEZE["A tela inteira CONGELA!\nO Windows exibe '(Não Respondendo)'! 🚨"]
CHECK -- "Despachar para Thread de Background ✅" --> THREAD["threading.Thread(target=processar_exportacao).start()"]
THREAD --> FINISHED["Ao terminar, envia o resultado de volta para a tela principal de forma thread-safe! ⚡"]
style MAIN fill:#ede7f6,stroke:#512da8,stroke-width:2px
style EVENT fill:#fff3e0,stroke:#ff9800,stroke-width:1.5px
style CHECK fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
style FREEZE fill:#ffebee,stroke:#d32f2f,stroke-width:2px
style THREAD fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style FINISHED fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff
🎯 Slide 1: Por Que CustomTkinter?
- Constrói interfaces desktop nativas modernas com suporte automático a Dark Mode / Light Mode, bordas arredondadas e escalonamento DPI de alta resolução sem peso extra.
🎯 Slide 2: Gerenciadores de Layout
-
grid(): O mais poderoso e flexível. Permite dividir a janela em linhas e colunas com pesos dinâmicos (rowconfigure,columnconfigure). pack(): Para empilhamento simples vertical ou horizontal.
🎯 Slide 3: Arquitetura MVVM / MVC para Desktop
- A interface gráfica deve apenas disparar eventos e renderizar dados.
- A lógica de validação, cálculos e acesso a banco deve residir em módulos de serviço puros e testáveis sem nenhuma dependência de interface visual!
🔗 Navegação do Capítulo 17
| 📖 Ler Conteúdo Completo | 🧠 Fazer Quiz | 💻 Ver Exemplos | 🧩 Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim