from tkinter import *
from tkinter import ttk
class AppConverter:
def __init__(self, root):
self.root = root
self.janela()
self.frames_da_janela()
self.widgets_frame1()
self.Menus()
self.root.mainloop()
def janela(self):
self.root.title("Conversor de Altitude: Pés para Milhas")
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.Pes_para_Milhas = Frame(self.abas)
self.Milhas_para_Pes = Frame(self.abas)
self.Pes_para_Milhas.configure(background="#dfe3ee")
self.Milhas_para_Pes.configure(background="#dfe3ee")
# Adicionando abas com os rótulos corretos
self.abas.add(self.Pes_para_Milhas, text="Pés para Milhas")
self.abas.add(self.Milhas_para_Pes, text="Milhas para Pés")
self.abas.place(relx=0, rely=0, relwidth=0.98, relheight=0.98)
# --- Pés para Milhas ---
self.feet_var = StringVar()
self.lb_Feet = Label(self.Pes_para_Milhas,
text="Pés (ft)",
bg='#dfe3ee', fg='#107db2', font=("Arial", "15", "bold"))
self.lb_Feet.place(relx=0.2, rely=0.05)
self.feet_entry = Entry(self.Pes_para_Milhas,
textvariable=self.feet_var,
justify='center', font=("Arial", "15", "bold"))
self.feet_entry.place(relx=0.45, rely=0.05, relwidth=0.45)
self.bt_calcular1 = Button(self.Pes_para_Milhas, text="Calcular",
bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'),
command=self.butaoclick1)
self.bt_calcular1.place(relx=0.3, rely=0.3, relwidth=0.45, relheight=0.2)
self.resultado_milhas = StringVar()
self.resultado1 = Label(self.Pes_para_Milhas, textvariable=self.resultado_milhas,
font=("Arial", "13", "bold"))
self.resultado1.place(relx=0.4, rely=0.71, relwidth=0.45)
self.lb_resultado1 = Label(self.Pes_para_Milhas,
text="Milhas (mi)", font=("Arial", "15", "bold"),
bg='#dfe3ee', fg='#107db2')
self.lb_resultado1.place(relx=0.15, rely=0.7)
# --- Milhas para Pés ---
self.miles_var = StringVar()
self.lb_Miles = Label(self.Milhas_para_Pes,
text="Milhas (mi)",
bg='#dfe3ee', fg='#107db2', font=("Arial", "15", "bold"))
self.lb_Miles.place(relx=0.15, rely=0.15)
self.miles_entry = Entry(self.Milhas_para_Pes,
textvariable=self.miles_var,
justify='center', font=("Arial", "15", "bold"))
self.miles_entry.place(relx=0.45, rely=0.15, relwidth=0.45)
# Botão de Calcular
self.bt_calcular2 = Button(self.Milhas_para_Pes, text="Calcular", bd=2, bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=self.butaoclick2)
self.bt_calcular2.place(relx=0.3, rely=0.38, relwidth=0.45, relheight=0.2)
# Resultado
self.resultado_Pes = StringVar()
self.resultado2 = Label(self.Milhas_para_Pes,
textvariable=self.resultado_Pes, font=("Arial", "13", "bold"))
self.resultado2.place(relx=0.5, rely=0.8, relwidth=0.4)
self.lb_resultado2 = Label(self.Milhas_para_Pes,
text="Pés (ft)", bg='#dfe3ee',
fg='#107db2', font=("Arial", "13", "bold"))
self.lb_resultado2.place(relx=0.2, rely=0.8)
def butaoclick1(self):
try:
ft = float(self.feet_var.get())
miles = ft / 5280
mensagem = f"{round(miles, 3)}"
except ValueError:
mensagem = "Valor inválido."
# Definir o resultado em Milhas
self.resultado_milhas.set(mensagem)
def butaoclick2(self):
try:
mi = float(self.miles_var.get())
feet = mi * 5280
mensagem = f"{round(feet, 3)}"
except ValueError:
mensagem = "Valor inválido."
self.resultado_Pes.set(mensagem)
def Quit(self):
self.root.destroy()
def Menus(self):
menubar = Menu(self.root)
self.root.config(menu=menubar)
filemenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Opções", menu=filemenu)
filemenu.add_command(label="Sair", command=self.Quit)
# Executa a aplicação
if __name__ == "__main__":
root = Tk()
AppConverter(root)