Ad Code

Python Tkinter #01 - Introdução à Criação de Interfaces Gráficas em Python

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 nome tkMessageBox pertence 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:

  1. Criação e configuração da janela principal;

  2. Widgets;

  3. pack(), grid() e place();

  4. Eventos e funções de callback;

  5. Variáveis do Tkinter;

  6. Criação de formulários;

  7. Menus e caixas de diálogo;

  8. Organização de aplicações maiores;

  9. Separação entre interface e lógica da aplicação.

Postar um comentário

2 Comentários

Emoji
(y)
:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:P
:o
:>)
(o)
:p
(p)
:-s
(m)
8-)
:-t
:-b
b-(
:-#
=p~
x-)
(k)

Close Menu