Este tutorial o guiará na criação e utilização de barras de menu no Tkinter, uma biblioteca Python para construção de interfaces gráficas de usuário (GUIs). Familiaridade prévia com widgets Tkinter básicos (como frames e labels) é benéfica.
Sumário
- Criando uma Barra de Menu Básica
- Adicionando Funcionalidade aos Itens de Menu
- Técnicas Avançadas de Barra de Menu (Opcional)
1. Criando uma Barra de Menu Básica
Vamos começar construindo uma barra de menu simples com um menu “Arquivo”, contendo as opções “Novo”, “Abrir” e “Sair”. Este exemplo inicial foca somente na estrutura visual; os itens de menu ainda não executarão nenhuma ação.
import tkinter as tk
root = tk.Tk()
root.title("Exemplo de Barra de Menu Tkinter")
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Novo")
filemenu.add_command(label="Abrir")
filemenu.add_separator()
filemenu.add_command(label="Sair")
menubar.add_cascade(label="Arquivo", menu=filemenu)
root.config(menu=menubar)
root.mainloop()
Este código cria a janela principal (root
), a barra de menu e o menu “Arquivo”. tearoff=0
impede que o menu seja destacado. add_command
adiciona itens de menu, add_separator
insere um separador visual e add_cascade
integra o menu “Arquivo” na barra de menu. root.config(menu=menubar)
exibe a barra de menu.
2. Adicionando Funcionalidade aos Itens de Menu
Agora, vamos melhorar os itens de menu com funcionalidade. Vamos conectar o comando “Sair” para fechar o aplicativo e adicionar ações para “Novo” e “Abrir”.
import tkinter as tk
def new_file():
print("Ação de novo arquivo acionada!")
def open_file():
print("Ação de abrir arquivo acionada!")
def exit_app():
root.destroy() # Melhor prática que root.quit()
root = tk.Tk()
root.title("Exemplo de Barra de Menu Tkinter com Comandos")
menubar = tk.Menu(root)
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Novo", command=new_file)
filemenu.add_command(label="Abrir", command=open_file)
filemenu.add_separator()
filemenu.add_command(label="Sair", command=exit_app)
menubar.add_cascade(label="Arquivo", menu=filemenu)
root.config(menu=menubar)
root.mainloop()
O código define as funções new_file
, open_file
e exit_app
. Essas funções são vinculadas aos itens de menu através do argumento command
. Clicar em “Novo” ou “Abrir” agora acionará a função respectiva; “Sair” fechará o aplicativo. Lembre-se de substituir as declarações de impressão de espaço reservado pela sua funcionalidade desejada. Por exemplo, você pode vincular “Abrir” a uma caixa de diálogo de arquivo.
3. Técnicas Avançadas de Barra de Menu (Opcional)
Para criar aplicativos mais complexos e amigáveis, considere essas técnicas avançadas:
- Submenus: Crie menus aninhados para melhor organização.
- Itens de Menu Checkbutton: Permita que os usuários alternem opções.
- Itens de Menu Radiobutton: Forneça escolhas mutuamente exclusivas.
- Atalhos de Teclado: Atribua atalhos de teclado aos itens de menu para acesso mais rápido (usando as opções
underline
eaccelerator
emadd_command
). - Tratamento de Eventos: Use técnicas de tratamento de eventos mais sofisticadas para gerenciar as interações do usuário.
Explore a documentação do Tkinter para obter informações detalhadas sobre esses recursos avançados.