Biblioteca TKinter
Tkinter é a biblioteca padrão do Python para criar interfaces gráficas de utilizador (GUI). Ela funciona como uma interface para o kit de ferramentas Tcl/Tk, que é uma biblioteca de widgets GUI gratuita e multiplataforma. Tkinter permite que programadoress criem janelas, botões, caixas de texto, menus e outros componentes gráficos de forma simples e eficiente
Principais caracteristicas do TKinter
- Incluido no Python: Vem pré-instalado na maioria das distribuições Python, exceto algumas versões Linux que podem exigir instalação separada.
- Portabilidade: Programas feitos com Tkinter rodam em Windows, macOS, Linux e Unix sem necessidade de bibliotecas extras.
- Facilidade de uso: Possui uma API simples e intuitiva, ideal para iniciantes e projetos rápidos.
- Widgets e hierarquia: A interface é composta por widgets (botões, rótulos, frames, etc.) organizados em hierarquia, onde widgets filhos são adicionados a widgets pais.
- Gestão de layout: Utiliza gestores de geometria como
grid(),pack()eplace()para posicionar os elementos na janela. - Execução: O método
mainloop()mantém a janela aberta e responde a eventos do utilizador.
Exemplo básico
import tkinter as tk
def exibir_mensagem():
print("O botão foi clicado!")
janela = tk.Tk()
janela.title("Exemplo Tkinter")
botao = tk.Button(janela, text="Clique Aqui", command=exibir_mensagem)
botao.pack()
janela.mainloop()
Esse código cria uma janela com um botão que, ao ser clicado, imprime uma mensagem na consola.
Importação do módulo TKinter
O Tkinter é composto por um conjunto de módulos, sendo o mais importante o módulo Tkinter que contém os componentes e as constantes.
Em Python podemos importar o módulo Tkinter das seguintes maneiras:
import tkinter
window = tkinter.Tk()
bt = tkinter.Button(window, text="Red", fg="red")
bt.pack(expand=True, anchor=tkinter.CENTER)
window.mainloop()
Podemos usar o formato import tkinter as…:
import tkinter as tk
window = tk.Tk()
bt = tk.Button(window, text="Red", fg="red")
bt.pack(expand=True, anchor=tk.CENTER)
window.mainloop()
Ou podemos usar o formato from tkinter import *:
from tkinter import *
window = Tk()
bt = Button(window, text="Red", fg="red")
bt.pack(expand=True, anchor=CENTER)
window.mainloop()
Loop de eventos
A função mainloop() do Tkinter é responsável por iniciar o loop de eventos da interface gráfica, mantendo a janela do programa ativa e responsiva a interações do utilizador, como cliques e teclas. Esse loop é infinito e bloqueia a execução do código que vem após ele até que a janela seja fechada, garantindo que a aplicação permaneça aberta e atualize a interface conforme necessário
Em termos práticos, a função mainloop() fica “escutando” eventos do sistema operativo e chama as funções associadas a esses eventos (como callbacks de botões), permitindo que a GUI funcione de forma interativa e dinâmica. Sem a função mainloop(), a janela do Tkinter simplesmente não aparece ou fecha imediatamente.
Além disso, mainloop() é uma função bloqueante, ou seja, o programa fica preso nela enquanto a interface está aberta, e qualquer código colocado depois dela só será executado após o fechamento da janela.
import tkinter as tk
root = tk.Tk()
root.mainloop() # mantém a janela aberta e interativa
