from tkinter import *
tabela = {
"bit": 1 / 8, # 8 bits = 1 Byte
"byte": 1,
"kb": 1024,
"mb": 1024 ** 2,
"gb": 1024 ** 3,
"tb": 1024 ** 4
}
def converter_dados():
try:
valor = float(Valor_Converter.get())
de_unidade = var1.get()
para_unidade = var2.get()
# Converte o valor para bytes e depois para a unidade final
em_bytes = valor * tabela[de_unidade]
resultado = em_bytes / tabela[para_unidade]
resultado_label.config(text=f"{valor} {de_unidade.upper()} = {resultado:.6f} {para_unidade.upper()}")
except:
resultado_label.config(text="Erro na conversão. Verifique os dados.")
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Converter Unidades de Dados")
titulo = Label(text="Converter Unidades de Dados",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.05)
texto_sub1 = Label(text="Valor a Converter:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)
Valor_Converter = StringVar()
Valor_Converter_entrada = Entry(textvariable=Valor_Converter,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Valor_Converter_entrada.place(relx=0.38, rely=0.26, relwidth=0.23)
texto_sub2 = Label(text="De:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.4)
var1 = StringVar()
DropDownList1 = ["bit", "byte", "kb", "mb", "gb", "tb"]
dropdown1 = OptionMenu(root, var1, *DropDownList1)
var1.set(DropDownList1[0])
dropdown1.place(relx=0.15, rely=0.4, relwidth=0.23)
dropdown1.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold"))
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold"))
texto_sub3 = Label(text="Para:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.45, rely=0.4)
var2 = StringVar()
dropdown2 = OptionMenu(root, var2, *DropDownList1)
var2.set(DropDownList1[1])
dropdown2.place(relx=0.55, rely=0.4, relwidth=0.23)
dropdown2.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold"))
dropdown2["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold"))
btn_converter = Button(root, text="Converter", command=converter_dados,
font=("Arial", 15, "bold"), bg="#49e3e3", fg="#103030")
btn_converter.place(relx=0.35, rely=0.55, relwidth=0.3)
resultado_label = Label(text="", font=("Arial", 16, "bold"),
bg="#103030", fg="#FFFFFF")
resultado_label.place(relx=0.1, rely=0.7, relwidth=0.8)
root.mainloop()