Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: cp1252 -*-
- #--------------------------------------------------------------------------@
- # Programa codificador e decodificador de codigo morse 'CDCM'
- # Autor: Jhonathan Paulo Banczek
- # data: 14 a 15/01/2011
- # email: jpbanczek@gmail.com
- #---------------------------------------------------------------------------@
- #importar o modulo Tkinter
- from tkinter import *
- #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- # Classe Janela
- #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- class Janela:
- #metodos
- def __init__(self, janela): #init é o construtor da classe
- #-----------------------------
- # cria o conteiner.
- #-----------------------------
- janela.title("Codificador de Código MORSE") #nome da janela
- janela.minsize( width = 540, height= 450) #tamanho minino da janela
- janela.maxsize( width = 540, height= 450) #tamanho minino da janela
- self.frame1 = Frame(janela)
- self.frame1.grid()
- #-------------------------------------------------
- # cria a barra de Menu
- #-------------------------------------------------
- self.menu = Menu( janela ) #cria um menu com pai janela
- self.arquivo = Menu( self.menu, tearoff=0 ) #cria o sub menu arquivo
- self.menu.add_cascade( label = "Arquivo", menu = self.arquivo) #cria um menu de cascata Arquivo
- #adiciona as opçoes do menu arquivo
- self.arquivo.add_command( label = "Novo", command = self.limpa_campo ) #comando limpa o campo
- self.arquivo.add_command( label = "Salvar" ) #comando pra salvar como texto
- self.arquivo.add_separator() #coloca uma linha
- self.arquivo.add_command( label = "Fechar", command = janela.destroy ) #comando que finaliza o programa
- #cria um menu Editar
- self.editar = Menu( self.menu, tearoff=0 )
- self.menu.add_cascade( label = "Editar", menu = self.editar) #cria um sub menu para editar
- self.editar.add_command( label = "Limpar", command = self.limpa_campo ) #limpa o campo
- self.editar.add_command( label = "Codificar texto", command = self.converte ) #converte o texto pra Morse
- self.editar.add_command( label = "Decodificar Código Morse" ) #falta implementar.
- #cria um menu Ajuda
- self.ajuda = Menu( self.menu, tearoff=0 )
- self.menu.add_cascade( label = "Ajuda", menu = self.ajuda)
- self.ajuda.add_command( label = "Ajuda" )
- self.ajuda.add_command( label = "Sobre", command = self.sobre )
- janela.config(menu = self.menu) #mostra os menus
- #-----------------------------
- # Cria o titulo
- #-----------------------------
- self.titulo = Label( self.frame1 )
- self.titulo['text'] = "CODIFICADOR"
- self.titulo['font'] = 'ARIAL','20'
- self.titulo['bg'] = 'white'
- #-----------------------------
- # cria a msg1
- #-----------------------------
- self.msg1 = Label( self.frame1 )
- self.msg1['text'] = "Informe no campo abaixo a frase:\n"
- self.msg1['font'] = 'ARIAL','14'
- #-----------------------------
- # cria o campo de entrada
- #-----------------------------
- self.barra = Scrollbar( self.frame1, orient = VERTICAL ) #cria uma barra de rolagem vertical pro campo entrada
- self.entrada = Text( self.frame1, yscrollcommand = self.barra.set )
- self.barra['command'] = self.entrada.yview #yview visualiza o texto
- self.entrada['height'] = 6
- self.entrada['width'] = 60
- #------------------------------------
- # cria o botao de enviar/codificar
- #-----------------------------------
- self.botao_codificar = Button( self.frame1 )
- self.botao_codificar['command'] = self.converte
- self.botao_codificar['bd'] = 3
- self.botao_codificar['text'] = "Codificar"
- self.botao_codificar['font'] = 'ARIAL','13'
- #-----------------------------------
- # cria o botao de limpar o campo
- #-----------------------------------
- self.botao_limpar = Button( self.frame1 )
- self.botao_limpar['command'] = self.limpa_campo
- self.botao_codificar['bd'] = 3
- self.botao_limpar['text'] = "Limpar"
- self.botao_limpar['font'] = 'ARIAL','13'
- #-----------------------------------
- # cria o botao de limpar o campo
- #-----------------------------------
- self.msg2 = Label( self.frame1 )
- self.msg2['text'] = "\nTexto codificado:\n"
- self.msg2['font'] = 'ARIAL','14'
- #-----------------------------------
- # cria o campo de saida
- #-----------------------------------
- self.barra2 = Scrollbar( self.frame1, orient = VERTICAL ) #cria uma barra de rolagem vertical pro campo entrada
- self.saida = Text( self.frame1, yscrollcommand = self.barra2.set )
- self.barra2['command'] = self.saida.yview
- self.saida['height'] = 6
- self.saida['width'] = 60
- #-----------------------------------
- # exibindo os widGets
- #-----------------------------------
- self.titulo.grid( row = 0, column = 2)
- self.msg1.grid( row = 2, column = 2 )
- self.entrada.grid( row = 3, column = 2, padx = 8 )
- self.barra.grid( row = 3, column = 3 )
- self.botao_codificar.grid( row = 4, column = 2 )
- self.msg2.grid( row = 5, column = 2 )
- self.saida.grid( row = 6, column = 2, padx = 8 )
- self.barra2.grid( row = 6, column = 3)
- self.botao_limpar.grid( row = 7, column = 2 )
- #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- # Metodos da classe Janela
- #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- #-----------------------------------------------
- # converte o texto do campo entrada
- # para CODIGO MORSE e insere no campo saida
- #-----------------------------------------------
- def converte( self ):
- texto = self.entrada.get(0.0, END)
- texto = texto.lower()#converte pra minusculo
- #texto = str(texto)
- aux = ""
- #procura a ocorrencia do carater.
- for i in texto:
- if i == 'a':aux = aux +'.- '
- elif i == 'b':aux = aux +'-... '
- elif i == 'c':aux = aux +'-.-. '
- elif i == 'd':aux = aux +'-.. '
- elif i == 'e':aux = aux +'. '
- elif i == 'f':aux = aux +'..-. '
- elif i == 'g':aux = aux +'--. '
- elif i == 'h':aux = aux +'.... '
- elif i == 'i':aux = aux +'.. '
- elif i == 'j':aux = aux +'.--- '
- elif i == 'k':aux = aux +'-.- '
- elif i == 'l':aux = aux +'.-.. '
- elif i == 'm':aux = aux +'-- '
- elif i == 'n': aux = aux +'-. '
- elif i == 'o':aux = aux +'--- '
- elif i == 'p':aux = aux +'.--. '
- elif i == 'q':aux = aux +'--.- '
- elif i == 'r':aux = aux +'.-. '
- elif i == 's':aux = aux +'... '
- elif i == 't':aux = aux +'- '
- elif i == 'u':aux = aux +'..- '
- elif i == 'v':aux = aux +'...- '
- elif i == 'x':aux = aux +'-..- '
- elif i == 'w':aux = aux +'.-- '
- elif i == 'y':aux = aux +'-.-- '
- elif i == 'z':aux = aux +'--.. '
- #NUMEROS
- elif i == '1':aux = aux +'.---- '
- elif i == '2':aux = aux +'..--- '
- elif i == '3':aux = aux +'...-- '
- elif i == '4':aux = aux +'....- '
- elif i == '5':aux = aux +'..... '
- elif i == '6':aux = aux +'-.... '
- elif i == '7':aux = aux +'--... '
- elif i == '8':aux = aux +'---.. '
- elif i == '9':aux = aux +'----. '
- elif i == '0':aux = aux +'----- '
- elif i == ' ':aux = aux +' / '
- elif i == '\n':aux = aux + '\n'
- #caracteres especiais
- elif i == '?':aux = aux +'··--·· '
- elif i == '!':aux = aux +'-·-·-- '
- elif i == ',':aux = aux +'--··-- '
- elif i == '.':aux = aux +'·-·-·- '
- elif i == '+':aux = aux +'·-·-· '
- elif i == '-':aux = aux +'-····- '
- elif i == "'": aux = aux + '·-··-· '
- elif i == '(': aux = aux + '-·--· '
- elif i == ')': aux = aux + '-·--·- '
- elif i == '&': aux = aux + '·-··· '
- elif i == ':': aux = aux + '----··· '
- elif i == ':': aux = aux + '-·-·-· '
- elif i == '=': aux = aux + '-···- '
- elif i == '-': aux = aux + '-····- '
- elif i == '_': aux = aux + '··--·- '
- elif i == '$': aux = aux + '···-··- '
- else:
- pass
- self.saida.insert(END, aux) #insere o codigo codificado no campo de saida
- #FIM do metodo converte_morse
- #--------------------------------------------------
- # Método que limpa os campo de entrada e saida
- #--------------------------------------------------
- def limpa_campo( self ):
- self.entrada.delete(0.0, END)
- self.saida.delete(0.0, END)
- #FIM do metodo limpa_campo
- def salvar( self ):
- print( "lol")
- #fim do metodo salvar
- #--------------------------------------------------
- # Método que exibe uma janela sobreo programa
- #--------------------------------------------------
- def sobre( self ):
- janela_sobre = Toplevel()
- janela_sobre.minsize( width = 600, height= 350) #tamanho minino da janela
- janela_sobre.maxsize( width = 600, height= 350) #tamanho minino da janela
- janela_sobre.title( "Sobre o Programa" )
- #cri um texto com a informação
- msg1 = Label(janela_sobre)
- msg1['text'] = """CDCM\nPrograma: Codificador e Decodificador CÓDIGO MORSE.\nAUTOR: Jhonathan Paulo Banczek\nDATA: 14 - 15/01/2011
- \n\nUnigran - Ciência da Computação.\nEMAIL: jpbanczek@gmail.com\n\nProgramação PYTHON - TK """
- msg1['font'] = 'times','18' #fonte
- msg1['fg'] = 'red' #cor
- msg1.pack(side = TOP) #exibe
- Button(janela_sobre, text = "Fechar", width = 10, command = janela_sobre.destroy).pack() #cria o botao pra fechar o frame
- #fim do metodo sobre
- #-------------------------------------------fim da classe-----------------
- #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- # FUNÇÃO PRINCIPAL
- #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
- raiz = Tk()# cria uma variavel do tipo classe Tk
- Janela(raiz)# passa a variavel pra clase janela
- raiz.mainloop()# loop infinito que mantem a janela aberta pros eventos
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement