O Tkinter é a biblioteca padrão do Python para a criação de interfaces gráficas de usuário (GUI — Graphical User Interface). Ela fornece uma maneira relativamente simples de criar aplicações desktop com janelas, botões, campos de texto, menus e outros elementos de interface.
O nome Tkinter vem de Tk interface e corresponde à interface do Python para o toolkit gráfico Tk. O Tkinter está disponível na maioria das plataformas Unix, incluindo Linux e macOS, além do Windows.
Com o Tkinter, é possível desenvolver rapidamente aplicações desktop utilizando Python. Por sua simplicidade e por fazer parte da biblioteca padrão, ele também é uma excelente opção para:
Aprender os conceitos básicos de desenvolvimento de interfaces gráficas;
Criar pequenas aplicações desktop;
Desenvolver ferramentas internas;
Criar protótipos rapidamente;
Transformar scripts Python em aplicações com interface gráfica.
Widgets do Tkinter
Uma interface gráfica é construída a partir de diferentes elementos chamados widgets.
O Tkinter fornece diversos widgets para criar interfaces, incluindo botões, etiquetas, campos de entrada, menus, caixas de seleção e áreas de texto.
A seguir estão alguns dos principais widgets disponíveis no Tkinter.
Button
O widget Button representa um botão que pode executar uma determinada ação quando o usuário interage com ele.
É normalmente utilizado para ações como:
Salvar informações;
Abrir uma janela;
Executar uma função;
Fechar a aplicação;
Processar dados.
import tkinter as tk
root = tk.Tk()
button = tk.Button(root, text="Clique aqui")
button.pack()
root.mainloop()
Canvas
O widget Canvas fornece uma área onde podemos desenhar elementos gráficos, como:
Linhas;
Retângulos;
Ovais;
Polígonos;
Imagens;
Outros elementos gráficos.
É especialmente útil quando a aplicação precisa de elementos gráficos personalizados.
Checkbutton
O Checkbutton permite apresentar opções que podem ser selecionadas ou desmarcadas.
Diferentemente de um botão de opção (Radiobutton), o usuário pode selecionar várias opções simultaneamente.
Exemplo:
[✓] Python
[✓] SQL
[ ] Java
Entry
O widget Entry é utilizado para receber texto em uma única linha.
É muito comum em formulários, por exemplo:
Nome: [________________]
Pode ser utilizado para receber informações como:
Nome;
E-mail;
Senha;
Número;
Código;
Pesquisas.
Frame
O Frame funciona como um contêiner para outros widgets.
Ele é muito utilizado para organizar os elementos da interface em diferentes áreas e facilitar a criação de layouts mais complexos.
Label
O widget Label é utilizado para apresentar textos ou imagens na interface.
Por exemplo:
Nome de usuário:
[________________]
Nesse caso, o texto "Nome de usuário:" pode ser apresentado utilizando um Label.
Listbox
O Listbox apresenta uma lista de opções que podem ser selecionadas pelo usuário.
Exemplo:
Python
Java
C++
JavaScript
É útil quando precisamos permitir que o usuário escolha um ou mais itens de uma lista.
Menubutton
O Menubutton apresenta um botão associado a um menu de opções.
Ele pode ser utilizado para criar menus suspensos dentro da aplicação.
Menu
O widget Menu permite criar menus e comandos para a aplicação.
Por exemplo:
Arquivo
├── Novo
├── Abrir
├── Salvar
└── Sair
Normalmente, o Menu é utilizado em conjunto com outros componentes, como a barra de menus principal da aplicação.
Message
O widget Message permite apresentar textos que podem ocupar várias linhas.
Diferentemente do Label, que é normalmente utilizado para textos curtos, o Message é adequado para mensagens maiores que precisam ser ajustadas automaticamente ao espaço disponível.
Radiobutton
O Radiobutton é utilizado quando o usuário precisa escolher uma única opção entre várias alternativas.
Por exemplo:
(•) Masculino
( ) Feminino
( ) Outro
Quando os Radiobuttons pertencem ao mesmo grupo, apenas uma opção pode ser selecionada por vez.
Scale
O widget Scale apresenta um controle deslizante que permite ao usuário selecionar um valor dentro de determinado intervalo.
Por exemplo:
Volume: |--------●---------|
0 50 100
É útil para controlar valores como volume, brilho, velocidade ou outras configurações numéricas.
Scrollbar
O Scrollbar adiciona barras de rolagem a widgets que possuem conteúdo que pode ultrapassar o espaço disponível.
É frequentemente utilizado em conjunto com:
Listbox;Text;Outros widgets que suportam rolagem.
Text
O widget Text permite apresentar e editar texto com múltiplas linhas.
É adequado para aplicações que precisam trabalhar com grandes quantidades de texto, como:
Editores de texto;
Campos de observações;
Visualizadores de arquivos;
Áreas para código.
Toplevel
O Toplevel permite criar uma nova janela independente dentro de uma aplicação Tkinter.
É particularmente útil para criar:
Janelas de configurações;
Formulários secundários;
Caixas de diálogo personalizadas;
Janelas auxiliares.
Spinbox
O Spinbox é uma variação do Entry que permite ao usuário selecionar valores a partir de uma lista ou intervalo predefinido.
Por exemplo:
Quantidade: [ 5 ▲ ]
[ ▼ ]
É bastante útil para selecionar números sem precisar digitá-los manualmente.
PanedWindow
O PanedWindow é um widget de contêiner que permite organizar diferentes áreas ou painéis dentro da interface.
Os painéis podem ser organizados horizontal ou verticalmente e, dependendo da configuração, o usuário pode redimensionar a área ocupada por cada painel.
LabelFrame
O LabelFrame é um contêiner semelhante ao Frame, mas permite apresentar um título associado ao grupo de widgets.
É útil para organizar visualmente partes relacionadas de um formulário.
Por exemplo:
┌── Informações pessoais ────────┐
│ │
│ Nome: [______________] │
│ Idade: [____] │
│ │
└────────────────────────────────┘
Messagebox
O módulo messagebox é utilizado para apresentar caixas de diálogo com mensagens ao usuário.
Pode ser utilizado para apresentar:
Informações;
Avisos;
Erros;
Confirmações;
Perguntas.
Exemplo:
from tkinter import messagebox
messagebox.showinfo("Informação", "Operação concluída!")
Nota: Em versões modernas do Tkinter, utiliza-se
tkinter.messagebox. O nometkMessageBoxpertence a versões antigas e não deve ser utilizado em novos projetos.
Atributos e opções comuns do Tkinter
Além dos widgets, o Tkinter disponibiliza diversas opções que permitem controlar a aparência e o comportamento dos elementos da interface.
Entre as opções mais utilizadas estão:
Dimensions
Controlam as dimensões dos widgets, como:
Largura;
Altura;
Espaçamento;
Margens.
Exemplo:
button = tk.Button(root, width=20, height=2)
Colors
Permitem definir cores para diferentes elementos da interface, como:
Cor de fundo;
Cor do texto;
Cor de destaque;
Cor de seleção.
Exemplo:
label = tk.Label(root, text="Olá", fg="blue", bg="white")
Fonts
Permitem definir características do texto, como:
Tipo de fonte;
Tamanho;
Estilo;
Negrito;
Itálico.
Exemplo:
label = tk.Label(
root,
text="Python",
font=("Arial", 16, "bold")
)
Anchors
O anchor determina a posição de um elemento dentro da área disponível.
Os valores mais comuns incluem:
N Norte
S Sul
E Leste
W Oeste
CENTER
Também podem ser combinados, como NW, NE, SW e SE.
Relief Styles
O relief controla a aparência das bordas de determinados widgets.
Alguns estilos disponíveis incluem:
flat;raised;sunken;groove;ridge.
Exemplo:
button = tk.Button(root, text="Enviar", relief="raised")
Bitmaps
O Tkinter possui suporte para determinados bitmaps, que podem ser utilizados em alguns widgets para representar elementos gráficos simples.
Cursors
O atributo cursor permite definir o tipo de cursor apresentado quando o mouse passa sobre determinados elementos da interface.
Por exemplo:
button = tk.Button(root, text="Enviar", cursor="hand2")
Conclusão
O Tkinter continua sendo uma opção importante para quem deseja aprender a criar interfaces gráficas com Python, principalmente porque está incluído na biblioteca padrão da linguagem e possui uma API relativamente simples.
Ao compreender os principais widgets, os gerenciadores de layout e as opções de configuração, é possível evoluir de interfaces simples para aplicações desktop completas.
Nos próximos passos, vale a pena estudar principalmente:
Criação e configuração da janela principal;
Widgets;
pack(),grid()eplace();Eventos e funções de callback;
Variáveis do Tkinter;
Criação de formulários;
Menus e caixas de diálogo;
Organização de aplicações maiores;
Separação entre interface e lógica da aplicação.
2 Comentários
Gostei demais da aula inicial! Obrigado pelos conteúdos gratuitos!
ResponderExcluirMuito Obrigado
Excluir