from tkinter import *
from tkinter import ttk
import base64
class AppConverter():
def __init__(self):
self.root = Tk()
self.janela()
self.frames_da_janela()
self.widgets_frame1()
self.Menus()
self.root.mainloop()
def janela(self):
self.root.title("Codificar uma string em Base64")
self.root.configure(background='#1e3743')
self.root.geometry("400x250")
self.root.resizable(0, 0)
def frames_da_janela(self):
self.frame_1 = Frame(self.root, bd=4, bg='#dfe3ee',
highlightbackground='#759fe6',
highlightthickness=2)
self.frame_1.place(relx=0.02, rely=0.02, relwidth=0.96, relheight=0.96)
def widgets_frame1(self):
self.abas = ttk.Notebook(self.frame_1)
self.Codificar_desCodificar = Frame(self.abas)
self.desCodificar_Codificar = Frame(self.abas)
self.Codificar_desCodificar.configure(background="#dfe3ee")
self.desCodificar_Codificar.configure(background="#dfe3ee")
self.abas.add(self.Codificar_desCodificar, text="Codificar")
self.abas.add(self.desCodificar_Codificar, text="DesCodificar")
self.abas.place(relx=0, rely=0, relwidth=0.98, relheight=0.98)
# Codificar
self.texto = StringVar()
Label(self.Codificar_desCodificar, text="Texto",
bg='#dfe3ee', fg='#107db2', font=("Arial", "15", "bold")).place(relx=0.05, rely=0.05)
self.texto_entry = Entry(self.Codificar_desCodificar, textvariable=self.texto,
justify='center', font=("Arial", "15", "bold"))
self.texto_entry.place(relx=0.25, rely=0.05, relwidth=0.7)
Button(self.Codificar_desCodificar, text="Converter",
bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'),
command=self.butaoclick1).place(relx=0.3, rely=0.3, relwidth=0.45, relheight=0.15)
self.resultado_codificar = StringVar()
Label(self.Codificar_desCodificar,
textvariable=self.resultado_codificar).place(relx=0.05, rely=0.7, relwidth=0.9)
Label(self.Codificar_desCodificar, text="Texto codificado", font=("Arial", "13", "bold"),
bg='#dfe3ee', fg='#107db2').place(relx=0.35, rely=0.5)
# Decodificar
self.texto2 = StringVar()
Label(self.desCodificar_Codificar, text="Texto", bg='#dfe3ee', fg='#107db2',
font=("Arial", "15", "bold")).place(relx=0.05, rely=0.15)
self.desCodificar_entry = Entry(self.desCodificar_Codificar, textvariable=self.texto2,
justify='center', font=("Arial", "13", "bold"))
self.desCodificar_entry.place(relx=0.25, rely=0.15, relwidth=0.7)
Button(self.desCodificar_Codificar, text="Desconverter", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'),
command=self.butaoclick2).place(relx=0.3, rely=0.38,
relwidth=0.45, relheight=0.2)
self.resultado_codigo = StringVar()
Label(self.desCodificar_Codificar, textvariable=self.resultado_codigo,
font=("Arial", "13", "bold")).place(relx=0.05, rely=0.8, relwidth=0.9)
Label(self.desCodificar_Codificar, text="Texto Original", bg='#dfe3ee',
fg='#107db2', font=("Arial", "13", "bold")).place(relx=0.2, rely=0.7)
def butaoclick1(self):
t = self.texto.get()
if t:
texto_codificado = base64.b64encode(t.encode("utf-8")).decode("utf-8")
self.resultado_codificar.set(f"Texto codificado: {texto_codificado}")
else:
self.resultado_codificar.set("Erro: Digite um texto válido!")
def butaoclick2(self):
t = self.texto2.get()
try:
texto_decodificado = base64.b64decode(t).decode("utf-8")
self.resultado_codigo.set(f"Texto original: {texto_decodificado}")
except Exception:
self.resultado_codigo.set("Erro: Entrada inválida!")
def Quit(self):
self.root.destroy()
def Menus(self):
menubar = Menu(self.root)
self.root.config(menu=menubar)
filemenu = Menu(menubar)
menubar.add_cascade(label="Opções", menu=filemenu)
filemenu.add_command(label="Sair", command=self.Quit)
AppConverter()
Comentários
Enviar um comentário