segunda-feira, 22 de julho de 2013

[Python] - Criando menus com Tkinter

Olá pessoal, nesse post irei exemplificar o uso de menus utilizando módulo Tkinter do Python. Irei utilizar a versão do Python 2.7.3.

Lembrando que o módulo Tkinter serve para você fazer interface gráfica, esse módulo é padrão do Python.

# coding:utf-8
# www.GeeksBR.com

from Tkinter import *

class Aplicacao:

 def __init__(self, master):
  self.frame = Frame(master)
  self.frame.pack()
  self.barra = Menu(master)
  self.menu_arquivo = Menu(self.barra)
  self.menu_arquivo.add_command(label="Novo")
  self.menu_arquivo.add_command(label="Abrir")
  self.menu_arquivo.add_command(label="Salvar")
  self.barra.add_cascade(label="Arquivo", menu=self.menu_arquivo)
  self.menu_editar = Menu(self.barra)
  self.menu_editar.add_command(label="Copiar")
  self.menu_editar.add_command(label="Colar")
  self.menu_editar.add_command(label="Recortar")
  self.barra.add_cascade(label="Editar", menu=self.menu_editar)
  master.config(menu=self.barra)

root = Tk()
root.geometry("400x300")
root.title("Minha aplicacao")
Aplicacao(root)
root.mainloop()

Linha 1: irei utilizar a codificação utf-8.

Linha 4: importação de todas as funções do módulo Tkinter.

Linha 6: classe Aplicacao onde eu irei definir os widgets da minha interface gráfica.

Linha 8: construtor da classe.

Linha 9: é criado um frame que será o contêiner.

Linha 10: utilizei o gerenciador de geometria pack(). Gerenciadores de geometria servem para posicionar os widgets.

Linha 11: foi criada a barra do menu.

Linha 12: foi criado o menu do arquivo, foi passado a barra do menu.

Linhas 13 à 15: adicionados comandos para o menu arquivo.

Linha 16: Foi adicionado o menu_arquivo para a barra, o nome definido foi Arquivo.

Linhas 17 à 21: mesma lógica do menu_arquivo.

Linha 22: configurando a barra do menu

Linha 24: obtém instância de Tk.

Linha 25: definida a largura e altura da janela.

Linha 26: definido um título para a janela.

Linha 27: passa uma instância de Tk para classe Aplicacao.

Linha 28: main loop da aplicação, fica esperando alguma ação do usuário.

Quaisquer dúvidas deixem nos comentários, até a próxima!


Nenhum comentário: