Tkinter é a biblioteca padrão do Python para criação de interfaces gráficas. Ele é incluído com a maioria das distribuições do Python, facilitando seu uso sem a necessidade de instalação adicional.

Vantagens do Tkinter:

  • Simples de aprender e usar.
  • Bom para pequenas e médias aplicações.
  • Integração direta com o Python.

Tkinter geralmente vem pré-instalado com Python. Para verificar, basta tentar importá-lo:

import tkinter

Criando uma Janela Simples

Vamos começar criando uma janela simples com Tkinter. Primeiro, importamos a biblioteca e criamos uma instância da janela principal.

import tkinter as tk
 
# Criação da janela principal
root = tk.Tk()
root.title("Minha Primeira Janela")
root.geometry("300x200")
 
# Iniciando o loop principal
root.mainloop()

Adicionando Widgets

Widgets são os componentes visuais da GUI, como botões, caixas de texto e rótulos. Vamos adicionar alguns widgets à nossa janela.

# Criação de um rótulo
label = tk.Label(root, text="Olá, Tkinter!")
label.pack()
 
# Criação de um botão
button = tk.Button(root, text="Clique Aqui", command=lambda: print("Botão clicado!"))
button.pack()

Eventos e Manipuladores

Eventos e manipuladores permitem que a interface responda às ações do usuário, como cliques de botão e movimentos do mouse.

Exemplo de manipulador de eventos:

def on_button_click():
    print("O botão foi clicado!")
 
button = tk.Button(root, text="Clique Aqui", command.on_button_click)
button.pack()

Layouts e Organizadores

Tkinter oferece várias opções para organizar os widgets na janela, como pack, grid e place.

Exemplo usando o pack:

label1 = tk.Label(root, text="Rótulo 1")
label1.pack(side=tk.LEFT)
 
label2 = tk.Label(root, text="Rótulo 2")
label2.pack(side=tk.RIGHT)

Exemplo usando o grid:

label1 = tk.Label(root, text="Rótulo 1")
label1.grid(row=0, column=0)
 
label2 = tk.Label(root, text="Rótulo 2")
label2.grid(row=1, column=1)

Exemplos

Exemplo de Cadastro de Alunos

Exemplo de listar de notas

Vamos criar uma aplicação simples para adicionar e listar notas.

import tkinter as tk
 
class NoteApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Aplicação de Notas")
        self.root.geometry("400x300")
 
        # Entrada de texto
        self.entry = tk.Entry(root, width=50)
        self.entry.pack(pady=10)
 
        # Botão para adicionar nota
        self.add_button = tk.Button(root, text="Adicionar Nota", command=self.add_note)
        self.add_button.pack(pady=5)
 
        # Área de texto para listar notas
        self.text_area = tk.Text(root, width=50, height=10)
        self.text_area.pack(pady=10)
 
    def add_note(self):
        note = self.entry.get()
        self.text_area.insert(tk.END, note + "\n")
        self.entry.delete(0, tk.END)
 
if __name__ == "__main__":
    root = tk.Tk()
    app = NoteApp(root)
    root.mainloop()

Referências

Para aprofundar seus conhecimentos em Tkinter, recomendo os seguintes recursos:

Desenvolvimento Rápido de Interfaces (RAD):